【发布时间】:2016-02-19 14:23:51
【问题描述】:
我是实体框架的新手,现在正在努力解决一个问题。我正在使用 MVC api 和 EF6。
我在 PUT 方法中保存了成员详细信息。那工作得很好。
现在,我修改了代码以保存评论(添加了新方法 PublishComment()),但这会破坏代码而没有任何错误消息!调试会话只是挂在 db.SaveChanges() 上。
public void Put(Guid id, MemberListItem item)
{
using (Context db = new Context())
{
Person updPerson = db.People.Find(item.PersonID);
if (updPerson.PrincipleContact != item.PrincipalMember)
{
updPerson.PrincipleContact = item.PrincipalMember;
}
string memberName = updPerson.GivenName1;
Guid memberID = updPerson.MemberID;
db.Entry(updPerson).State = System.Data.Entity.EntityState.Modified;
PublishComment(db, memberID, "User Modified. " + memberName + " modified from user profile.");
db.SaveChanges();
}
public void PublishComment(Context db, Guid memberID, string comment)
{
MemberComment newComment = new MemberComment();
newComment.CommentID = new Guid();
newComment.MemberID = memberID;
newComment.DateAdded = DateTime.Now;
newComment.Comment = DateTime.Now.ToShortDateString() +": " + comment;
db.MemberComments.Add(newComment);
}
【问题讨论】:
-
我看不出代码有什么问题。您可以尝试运行(而不是调试)并查看它是否仍在中断。有时 Visual Studio 需要重新启动!
-
ComcopyID 不是数据库中的
uniqueidentifier并具有自动生成的值吗?Person和MemberComment之间是否有外键?另外,我看不到您实际在哪里使用id的Put方法。
标签: c# entity-framework api model-view-controller