【发布时间】:2015-11-24 10:24:49
【问题描述】:
我在这里遇到了第 22 个问题。当我像这样创建一个新对象并使用 EF 存储它时,我得到了错误。
private void DataGrid_OnAddingNewItem(object sender, AddingNewItemEventArgs eventArgs)
{
eventArgs.NewItem = new Customer
{
Id = Guid.NewGuid(),
Discount = 0
};
}
该表中唯一的标识列是 LookUp,并且错误会像这样唠叨它。
DEFAULT 或 NULL 不允许作为显式标识值。
但是(这是 22-catchy 的地方),当我确保该值不是默认值或 null 时,如下所示,我遇到了另一个问题。
private void DataGrid_OnAddingNewItem(object sender, AddingNewItemEventArgs eventArgs)
{
eventArgs.NewItem = new Customer
{
Id = Guid.NewGuid(),
LookUp = -1,
Discount = 0
};
}
问题表现如下。
当 IDENTITY_INSERT 设置为 OFF 时,无法为表“客户”中的标识列插入显式值。
我正在使用 EF,但我不确定如何将身份插入设置为关闭。事实上,我什至不确定这是否可能。即使我知道该怎么做,它似乎仍然隐藏问题,而不是解决它。
我敢打赌,我需要能够省略 LookUp 字段的规范,并且仍然能够将事物插入到数据库中。不过不知道怎么做,也不知道怎么处理。
【问题讨论】:
标签: c# sql entity-framework