我想使用實體框架6插入和更新表格。我無法做到這一點。無法在實體框架中添加或更新表格6
當我插入,我得到一個錯誤
無法更新EntitySet的「SampleV2」,因爲它有一個DefiningQuery並沒有元素的元素存在,以支持當前的操作
當我更新後,拋出的錯誤是:
屬性'名稱'是對象的關鍵信息的一部分,無法修改。
我的代碼:
//Table script
CREATE TABLE [dbo].[SampleV2](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [varchar](150) NOT NULL,
[DateOfBirth] [datetime] NOT NULL,
[Status] [bit] NOT NULL
) ON [PRIMARY]
// SampletV2.cs
public partial class SampleV2
{
public int Id { get; set; }
public string Name { get; set; }
public System.DateTime DateOfBirth { get; set; }
public bool Status { get; set; }
}
// Utilities.cs
public static Dictionary<bool,string> SavePlayerDetails(SampleV2 model)
{
Dictionary<bool, string> dicInfo = new Dictionary<bool, string>();
if (model.Id == 0)
{
try
{
SampleV2 sam = new SampleV2
{
Name = model.Name,
DateOfBirth = model.DateOfBirth,
Status = model.Status
};
using (var _context = new ExamEntities1())
{
_context.SampleV2.Add(sam);
_context.SaveChanges(); // getting error here
}
}
catch (Exception e)
{
throw;
}
}
else
{
try
{
using (var _context = new ExamEntities1())
{
SampleV2 data = _context.SampleV2.SingleOrDefault(a => a.Id == model.Id);
data.DateOfBirth = model.DateOfBirth;
data.Name = model.Name;
data.Status = model.Status;
_context.Entry(data).State = System.Data.Entity.EntityState.Modified; // getting error here
_context.SaveChanges();
}
}
catch (Exception e)
{
throw;
}
}
return dicInfo;
}
嘗試在數據庫和「KeyAttribute」中添加'id'作爲主鍵,因爲該錯誤表明目標表上缺少主鍵。 –
模型已經動態創建,我是否想手動添加KeyAttribute? –
你有複合PK嗎? –