Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在实体框架中设置默认值_C#_.net_Sql Server 2008_Entity Framework_Default Value - Fatal编程技术网

C# 如何在实体框架中设置默认值

C# 如何在实体框架中设置默认值,c#,.net,sql-server-2008,entity-framework,default-value,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 { g

我的数据库中有一个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 framework发送此数据,并将所有其他不可为null的字段设置为某些默认数据(对于字符串“”、对于小数0.0等),而无需在我的模型中写入所有字段并手动执行此操作?

如果在构造函数中设置值,则通过代码将具有默认值,但您可以考虑启用迁移,这样您就可以设置默认值。请看

当您没有在模型中合并表列时,它将不会被映射,并且它将被所有生成的SQL完全忽略

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

我想这就是你想要的。它明确提到概念模型和存储模型之间缺乏映射。但这不是一个很受欢迎/理解的想法


更新:FWIW,表明在非代码优先的场景中已经可以进行此操作。

此操作需要再次填充我的模型。我并不是在某个地方写下,对于nvarchar not nullable fields,在没有提到字段的情况下设置空字符串。呃:(在实体框架中有这样的东西会很有用。谢谢。@ChuckNorris:EF不知道这些列,所以应该如何填充它们?如果不想映射这些列,请创建存储过程,并使用存储过程插入数据。我已经考虑过解决存储过程的问题。我会谢谢你的帮助:)