我试图通过添加对象,它会抛出上面的错误。我的ID列为NOT NULL
,没有Identity
。我的代码如下。我也正在为ID分配值。
我已根据SO Thread在上下文类中为此属性添加了属性[DatabaseGenerated(DatabaseGeneratedOption.None)]
但不起作用。
int id = context.CreditApps.Max(x => x.ID);
if (id != null && id != 0)
{
newCreditAppId = id + 1;
objCredit.ID = newCreditAppId;
}
objCredit.IsActive = true;
context.DTOriginalCreditApps.AddObject(objCredit);
context.SaveChanges();
上下文类
#region Primitive Properties
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
[DatabaseGenerated(DatabaseGeneratedOption.None)] //Added later
[DataMemberAttribute()]
public global::System.Int32 Id
{
get
{
return _Id;
}
set
{
if (_Id != value)
{
OnIdChanging(value);
ReportPropertyChanging("Id");
_Id = StructuralObject.SetValidValue(value);
ReportPropertyChanged("Id");
OnIdChanged();
}
}
}
答案 0 :(得分:0)
我只是在edmx文件的XML SSDL中更改上述实体的ID列的属性StoreGeneratedPattern="None"
。
基本上,当您的表不包含没有标识的主键时,会发生此运行时异常。