我正在尝试为我的事件对象添加注释。我使用此代码时收到错误
Note noteToAdd = new Note { State = State.Added, NoteText = note };
Patient patient = context.Patients.Find(patientId);
patient.State = State.Modified;
patient.MobilePatient.State = State.Modified;
patient.MobilePatient.MCalmEvents.Find(e => e.Id == eventid).Note = noteToAdd;
context.ApplyStateChanges();
使用Linq To Entity有更好的方法吗?
我遇到的错误是:
{“无效的列名'Note_Id'。”}
并且正在生成的SQl是SELECT而不是INSERT。
谢谢
答案 0 :(得分:0)
根据你的地图,Event
实体有一个Note
列表作为导航属性,我想你应该添加到这个集合中,你在这一行写的是什么:
patient.MobilePatient.MCalmEvents.Find(e => e.Id == eventid).Note = noteToAdd;
我认为应该是这样的:
patient.MobilePatient.MCalmEvents.Find(e => e.Id == eventid).Add(noteToAdd);
另外,你得到了什么样的错误?你能解释一下你的错误吗?
答案 1 :(得分:0)
确保Event
导航属性上没有添加方法
为什么不尝试直接从上下文添加注释?像:
context.Note.Add(noteToAdd);
答案 2 :(得分:0)
但您的地图显示了Note
和Event
之间的一对多关系......
您的所有代码都保持原样,但不是这一行:
patient.MobilePatient.MCalmEvents.Find(e => e.Id == eventid).Note = noteToAdd;
替换这些行:
noteToAdd.EventID = oEvent.ID; // replace field names, to exactly what they are;
context.Note.Add(noteToAdd);
var oEvent = patient.MobilePatient.MCalmEvents.Find(e => e.Id == eventid);
oEvent.NoteID = noteToAdd.ID; // replace field names, to exactly what they are;
我想如果你不写这两篇:
var oEvent = patient.MobilePatient.MCalmEvents.Find(e => e.Id == eventid);
oEvent.NoteID = noteToAdd.ID; // replace field names, to exactly what they are;
没有任何问题,我不确定