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

IsNullable 为false 时 能否对Entity值为null的字段 插入默认值? #384

Closed
pjy612 opened this issue Jul 22, 2020 · 7 comments
Closed

Comments

@pjy612
Copy link

pjy612 commented Jul 22, 2020

如果是 字符串 就插入 ""
数字就插入 0 ?

@2881099
Copy link
Collaborator

2881099 commented Jul 22, 2020

是的,比如 int 的话本身 isnullable false。
int? 的话本身 isnullable true。

isnullable 基本对 string 才有必要设置

@pjy612
Copy link
Author

pjy612 commented Jul 23, 2020

因为有string 设了非空 但是insert的时候还是插了null 。所以问问要怎么设置

@2881099
Copy link
Collaborator

2881099 commented Jul 23, 2020

哦,你在说默认值。

isnullable 目前主要是给 codefirst 建表

@pjy612
Copy link
Author

pjy612 commented Aug 3, 2020

其实就是 CodeFirst 设置为 非空 字段时。
如果 插入时数据为没给实体对应字段赋值 是否能 自动对应位置插入空字符串?

@2881099
Copy link
Collaborator

2881099 commented Aug 3, 2020

其实就是 CodeFirst 设置为 非空 字段时。
如果 插入时数据为没给实体对应字段赋值 是否能 自动对应位置插入空字符串?

这个优化,在 v1.8.0 上做好了

其实用 fsql.Aop.AuditValue 也可以拦截 null 值。

2881099 pushed a commit that referenced this issue Aug 3, 2020
@pjy612
Copy link
Author

pjy612 commented Aug 14, 2020

Thanks♪(・ω・)ノ
主要是换了ORM后,设定非空字段没赋值 然后插入报错才提的。
介于原始逻辑所以没动Aop

@netssfy
Copy link

netssfy commented May 27, 2024

@2881099 额,请问这null自动转default的功能可以disable掉嘛。我觉得这个功能无意间打破了数据库的约束。因为null和空字符串其实语义上是不一样的,如果ORM自动做了这个转换而不是报错的话,相当于做了业务代码做的事情了。
想要把null和空字符串或者default值做mapping,应该是业务代码的事情,可以用AOP显示的去处理

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

No branches or pull requests

3 participants