Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.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#_Asp.net_Entity Framework_Sql Server 2008 R2 - Fatal编程技术网

C# 实体模型-如何使用数据库';插入时设置默认列值

C# 实体模型-如何使用数据库';插入时设置默认列值,c#,asp.net,entity-framework,sql-server-2008-r2,C#,Asp.net,Entity Framework,Sql Server 2008 R2,我使用的是SQLServer2008、WebForms、C#、Frameowrk 3.5、EntityFramework 1 我从数据库生成了实体模型 MyDB有各种表&让我们以一个表用户为例 它包含id、姓名、电子邮件、创建时间、活动时间、休假时间等字段 处于活动状态和休假属性的默认值默认为0(零),单位为db 但当我尝试使用实体模型在这个表中插入一条记录时,它会在这些字段中保存NULL。如何避免这种情况?我不想在我的页面中为它们设置一个值,而是想使用DB中提到的值 如何实现这一点?数据库中的

我使用的是SQLServer2008、WebForms、C#、Frameowrk 3.5、EntityFramework 1 我从数据库生成了实体模型

MyDB有各种表&让我们以一个表用户为例 它包含id、姓名、电子邮件、创建时间、活动时间、休假时间等字段 处于活动状态和休假属性的默认值默认为0(零),单位为db

但当我尝试使用实体模型在这个表中插入一条记录时,它会在这些字段中保存NULL。如何避免这种情况?我不想在我的页面中为它们设置一个值,而是想使用DB中提到的值


如何实现这一点?

数据库中的
处于活动状态
处于休假状态
列可以为空。如果使它们不可为null,则在执行插入时应使用默认值

ALTER TABLE [user] ALTER COLUMN [is_active] DEFAULT(0) NOT NULL
ALTER TABLE [user] ALTER COLUMN [is_on_leave] DEFAULT(0) NOT NULL
GO

数据库中的
处于活动状态
处于休假状态
列可为空。如果使它们不可为null,则在执行插入时应使用默认值

ALTER TABLE [user] ALTER COLUMN [is_active] DEFAULT(0) NOT NULL
ALTER TABLE [user] ALTER COLUMN [is_on_leave] DEFAULT(0) NOT NULL
GO

此列可以为空。在设计器中右键单击“属性”,选择“属性”,然后在“属性”窗口中将属性的StoreGeneratedPatern设置为“计算”。 我发现了类似的问题:

此列可以为空。在设计器中右键单击“属性”,选择“属性”,然后在“属性”窗口中将属性的StoreGeneratedPatern设置为“计算”。 我发现了类似的问题:

假设1。您有一个默认值,因为您不希望在这些列中有null,2。您可以控制数据库,因此使列不可为空似乎是明智的。如果其中任何一个假设都不正确,这是一个很好的解决方法:)我同意第一个假设-如果设置默认值,则不希望列为null,但我不同意我的解决方案是一个解决方法-他必须设置StoreGeneratedPattern,即使他更改了列并使其不可为null。如果他只在db级别设置了not null,而没有设置storegeneratedpattern,他将收到一个错误,因为在不允许null的列中插入了null值。如果您将该列设置为不可null,则从数据库更新您的模型,与数据库字段对应的属性将不可为null,并且EF将插入属性类型的默认值,而不是null。在这种情况下,属性类型的默认值为false,这也是数据库中的默认值。我想说设置storegeneratedpattern可以解决这个问题,但是使列不可为null可以防止它。您有一个默认值,因为您不希望在这些列中有null,2。您可以控制数据库,因此使列不可为空似乎是明智的。如果其中任何一个假设都不正确,这是一个很好的解决方法:)我同意第一个假设-如果设置默认值,则不希望列为null,但我不同意我的解决方案是一个解决方法-他必须设置StoreGeneratedPattern,即使他更改了列并使其不可为null。如果他只在db级别设置了not null,而没有设置storegeneratedpattern,他将收到一个错误,因为在不允许null的列中插入了null值。如果您将该列设置为不可null,则从数据库更新您的模型,与数据库字段对应的属性将不可为null,并且EF将插入属性类型的默认值,而不是null。在这种情况下,属性类型的默认值为false,这也是数据库中的默认值。我认为设置storegeneratedpattern可以解决这个问题,但使列不可为null可以防止它。