Entity Framework 6を使用してテーブルを挿入および更新しようとしていますが、できません。Entity Framework 6でテーブルを追加または更新できません
私は挿入すると、それはDefiningQueryを持っており、どの要素が
すると、現在の操作をサポートするために、要素内に存在しないので、私はエラー
のEntitySet「SampleV2」を更新できませんを取得私は更新すると、投げられたエラーは以下の通りです:
プロパティ '名前'はオブジェクトのキー情報の一部であり、変更することはできません。
マイコード:
//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; }
DBと 'KeyAttribute'の主キーに' id'を追加してみてください。エラーはターゲットテーブルの主キーが失われていることを示しています。 –
モデルが動的に作成されました。KeyAttributeを手動で追加したいですか? –
複合PKをお持ちですか? –