我的数据库中有一个包含52列的表,我想编写一个函数来在该表中创建一行。
就我而言,我不想使用该表中的所有列,因此我创建了这样的模型。
[Table("CUST_MASTER")]
public class CustomerMaster
{
[Key]
[Column("CUSTOMER_ID")]
public string Id { get; set; }
[Column("CUSTOMER_NAME")]
public string Name { get; set; }
[Column("CUSTOMER_CITY")]
public string City { get; set; }
}
有没有办法只通过Entity框架发送这些数据,并将所有其他不可空字段设置为某些默认数据(对于字符串“”,对于小数0.0等),而无需在模型中写入所有字段并执行此操作手动?
答案 0 :(得分:4)
当你没有在模型中加入表格列时,它就不会被映射,所有生成的SQL都会完全忽略它。
因此,唯一的选择是在数据库中指定默认值。
答案 1 :(得分:0)
如果在构造函数中设置值,则代码中将包含默认值,但您可以考虑启用迁移,这样您就可以设置默认值。看看this stackoverflow question
答案 2 :(得分:0)
我认为old suggestion就是你想要的。它明确提到概念模型和存储模型之间缺乏映射。虽然不是一个非常受欢迎/理解的想法。
更新: FWIW,this表明在非Code-First方案中已经可以使用。