【发布时间】:2014-05-04 03:48:14
【问题描述】:
我正在开发一个 ASP.NET MVC 应用程序,我正在使用实体框架和 linq。
我遇到的问题是,当我尝试更新数据库中没有更新的记录时。
这是我正在使用的课程:
public class Customer
{
[Key]
[Required]
public int Id { get; set; }
[Required]
public string firstName { get; set; }
[Required]
public string surname { get; set; }
[Required]
public string userName { get; set; }
[Required]
public string password { get; set; }
[Required]
public bool subscription { get; set; }
public List<int> Articles { get; set; }
public void AddArticle(int id)
{
if (Articles != null)
{
Articles.Add(id);
}
else
{
Articles = new List<int> {id};
}
}
}
我已经根据上述类创建了一个新条目并将其保存到数据库中,并且效果很好。我暂时将 ListArticles 保留为空。
现在我得到了记录:
var customer = context.Customers.SingleOrDefault(o => o.Id == 1);
这里是 customer.Articles == null
现在我添加它:
customer.AddArtical(0);
查看这个我可以看到它已经更新了变量 customer,现在我需要将这些更新保存在数据库中。
我已经尝试了这里的所有示例,但似乎没有一个可以保存到数据库中 Entity Framework 5 Updating a Record
context.Customers.Attach(query);
context.Entry(query).State = EntityState.Modified;
context.SaveChanges();
这段代码完成后,项目的另一个区域被调用并执行相同的查询:
var customer = context.Customers.SingleOrDefault(o => o.Id == 1);
但是List<int> Articles 仍然为空。
有什么想法吗?
【问题讨论】:
标签: c# sql linq entity-framework linq-to-entities