Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XCode 代码生成工具为什么不能生成 Nullable 属性? #143

Open
zhang-junlin opened this issue May 16, 2024 · 7 comments
Open
Labels

Comments

@zhang-junlin
Copy link

我的 Model.xml 配置文件有一个字段是可空的,即 Nullable="True",为什么生成的实体对应的属性不是可空类型的属性呢?

比如:

我想要的结果
public long? Id { get; set; }

但是实际结果是
public long Id { get; set; }

@nnhy
Copy link
Member

nnhy commented May 16, 2024

代码生成器xcodetool.exe默认不支持可空类型,你可以通过模型文件的Nullable配置来打开

@zhang-junlin
Copy link
Author

代码生成器xcodetool.exe默认不支持可空类型,你可以通过模型文件的Nullable配置来打开

image

请问一下您说的是 这个配置吗?我打开了还是不行。

@nnhy
Copy link
Member

nnhy commented May 16, 2024

是这个开关,你的代码生成器xcodetool是最新版吗?可以下载最新版,或者拉取代码自己发布一个

@zhang-junlin
Copy link
Author

zhang-junlin commented May 16, 2024

是这个开关,你的代码生成器xcodetool是最新版吗?可以下载最新版,或者拉取代码自己发布一个

是的,我的 xcodetool 工具是最新的,我发现问题所在:打开这个开关后,只有引用类型才会生成 Nullable,比如 String? ,值类型不会生成,比如 Int32,不会生成 Int32?

我不知道为什么是这个结果,您也可以在您本地试试。希望团队能修复这个问题,谢谢!

@nnhy nnhy added the bug label May 16, 2024
@nnhy
Copy link
Member

nnhy commented May 16, 2024

如果你的测试正确,那么说明这是一个bug,需要有人来修复。

大部分XCode用户从来不用可空类型,所以大家都没有注意这个问题。

@zhang-junlin
Copy link
Author

如果你的测试正确,那么说明这是一个bug,需要有人来修复。

大部分XCode用户从来不用可空类型,所以大家都没有注意这个问题。

是的,不过我觉得可空类型是必需的,毕竟从数据库角度来讲,0 和 NULL 的意义是完全不同的。比如有时候数据库字段是 NULL 值,但是我们查询返回给前端的结果是 0,这样并不是大家想要的结果。

@nnhy
Copy link
Member

nnhy commented May 16, 2024

想法是美好的!
但是20多年的团队协作经验表明,从来就没有一个团队,它的所有人能够在是否让数据库NULL具有业务意义这一点上统一意见。

NewLife团队的理念是:不强求!
也就意味着,数据库可能是NULL,可能是0。
因此,我们的项目清一色不用可空类型,数据库数字型字段默认都不允许为空!
不许为空,还优化了索引性能。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants