Entity Framework原生SQL查询无法赋值问题求助
解决EF SqlQuery返回对象字段未赋值的问题
问题出在你定义的TestData类里用的是字段(field),而Entity Framework的SqlQuery<T>方法只会通过类的**属性(property)**的setter来完成数据映射,它不会直接给类的字段赋值,所以才会出现实例数量正确,但所有字段都是默认值的情况。
直接把TestData里的字段改成带getter和setter的属性就能解决:
public class TestData { public int DailyGamingID { get; set; } public DateTime GamingDate { get; set; } public int LocationID { get; set; } }
如果特殊场景下必须用字段(不推荐这种写法),可以在SQL查询里给列名指定和字段完全一致的别名,同时确保字段是public权限,但这种方式远不如用属性稳定,EF的映射逻辑本身就是优先针对属性设计的。
内容的提问来源于stack exchange,提问作者JBrock
相关产品推荐
相关产品推荐

