如何在Entity Framework中设置默认值

时间:2012-05-03 07:59:41

标签: c# .net sql-server-2008 entity-framework default-value

我的数据库中有一个包含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等),而无需在模型中写入所有字段并执行此操作手动?

3 个答案:

答案 0 :(得分:4)

当你没有在模型中加入表格列时,它就不会被映射,所有生成的SQL都会完全忽略它。

因此,唯一的选择是在数据库中指定默认值。

答案 1 :(得分:0)

如果在构造函数中设置值,则代码中将包含默认值,但您可以考虑启用迁移,这样您就可以设置默认值。看看this stackoverflow question

答案 2 :(得分:0)

我认为old suggestion就是你想要的。它明确提到概念模型和存储模型之间缺乏映射。虽然不是一个非常受欢迎/理解的想法。

更新: FWIW,this表明在非Code-First方案中已经可以使用。