我有一个使用该[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 为空/空,则使用数据库中定义的值?否则,如果我在代码中设置值,我想使用这个值。