【发布时间】:2013-07-10 03:34:03
【问题描述】:
我有一个使用 [DatabaseGenerated(DatabaseGeneratedOption.Computed)] 属性的 EF5 代码优先项目。
此选项会覆盖我的设置。
考虑这个 SQL 表:
CREATE TABLE Vehicle (
VehicleId int identity(1,1) not null,
Name varchar(100) not null default ('Not Set')
)
我正在使用 SQL 默认构造来设置 [Name] 以防它未设置。
在后面的代码中,我定义了一个类,类似于:
public class Vehicle {
...
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string ShoulderYN { get; set; }
}
当我在代码中更新实体时,默认设置的值会覆盖我的新设置。
在代码中,我有(伪):
vehicle.Name = 'Update Name of Vehicle';
_dbContext.Update(vehicle);
_dbContext.SaveChanges();
预期结果是Vehicle.Name = 'Update Name of Vehicle'。
实际结果是Vehicle.Name = 'Not Set'。
EF5 中有没有办法说:
如果 Vehicle.Name 为空/空,则使用数据库中定义的值?否则,如果我在代码中设置了值,我想使用这个值。
【问题讨论】:
标签: ef-code-first entity-framework-5