如题,
如何避免 在用EF的时候,自动过滤 实体类 为null的字段, 在生成SQL的时候不生成这个字段。
public class User { public string Name { get; set; } public DateTime? AddDate { get; set; } public int? Fid { get; set; } } 再实体已经允许为null, 那么如何让EF ,在添加 跟修改的时候,自动过滤掉这些 null的字段。 比如说。 生成 INSERT INTO USER (Name) VALUES('') 这样的T-SQL 修改生成 UPDATE USER SET Name='' WHERE ... 这样的 语句, 就是如果该实体类的属性是null的情况下 统统过滤掉不生成在T-SQL语句里面
如何提问才能让人明白你想问啥。
如题
比如有一个视图 User
public class User { public string Name { get; set; } public DateTime? AddDate { get; set; } public int? Fid { get; set; } } 再实体已经允许为null, 那么如何让EF ,在添加 跟修改的时候,自动过滤掉这些 null的字段。 比如说。 生成 INSERT INTO USER (Name) VALUES('') 这样的T-SQL 修改生成 UPDATE USER SET Name='' WHERE ... 这样的 语句, 就是如果该实体类是null的情况下 统统过滤掉不生成在T-SQL语句里面
@崩溃的油条:
1、需求很奇葩。
2、你想给NULL的时候咋办?
3、真想做这个功能也不是不能,想办法拦截EF生成的SQL语句呗。
4、回过头来,还是劝你一句,这是歧途,别走下去。
@爱编程的大叔:
不是。有这个需求。如果表有一个字段。只能在添加的时候操作一次,比如添加时间,之后是不允许操作的。
或者如果过滤掉这个问题,那有没有类似自己写的特性来屏蔽它。比如说在添加的时候过滤它。在修改的是过滤它。甚至 添加修改的时候都可以过滤它
@崩溃的油条: 你不修改那个字段,就不会有问题的。多事要过滤。
再说了,添加时间这种字段,可以配置在DataCotext里面全自动设置的,哪里需要你去设置一次。
将属性的默认值设置为null试试
public class User { public string Name { get; set; } public DateTime? AddDate { get; set; } = null public int? Fid { get; set; } = null }
意思就是实体为null的字段在更新和插入时不管这个字段?
是的
@崩溃的油条: 这种需求是你自己想出来的.
这种需求的名字叫:ef 部分列更新. 百度这个关键字就可以了.
至于插入.都是新字段.你不插入null他就不是null了吗..