有人可以帮我解决这个问题:
我有一个使用实体框架构建的数据库。在我的简单项目中,我所要做的就是在数据库中添加一个新行,就是这样。
我有一个数据库类,名为UserDB
public class UserDB : DbContext
{
public UserDB()
: base("UserDB")
{
}
public List<User> Users { get; set; }
}
和用户的课程
[Table(Name="User")]
public class User
{
[Key]
public String Name { get; set; }
}
我正在尝试使用另一个控制台应用程序在数据库中添加新数据,但每次调用方法insertInformation(字符串名称)时,它都表示UsersDB中的用户列表为空,并且无法添加数据库中的新用户。我在其他ASP.NET应用程序中使用了相同的方法,它们都完美无缺。如果有人知道如何解决这个问题,请帮助
我正在使用的服务:
public class Service1 : IService1
{
/// <summary>
/// Method for adding new User in Database
/// </summary>
/// <param name="name"></param>
public void insertData(string name)
{
UserDB db = new UserDB();
User user = new User
{
Name = name
};
//if (db.Users == null)
//{
// db.Users = new List<User>();
// db.Users.Add(user);
//}
//else
// db.Users.Add(user);
db.Users.Add(user);
db.SaveChanges();
}
答案 0 :(得分:0)
也许您应该尝试使用以下代码:
而不是:
List<User> Users { get; set; }
只需尝试:
DbSet<User> Users { get; set; }
我总是在我的DBContext中使用DbSet或IDbSet,它始终有效。
答案 1 :(得分:0)
使用此
db.Users.InsertAllOnSubmit(user);
db.SubmitChanges();
而不是
db.Users.Add(user);
db.SaveChanges();
答案 2 :(得分:0)
试试这个
db.AddObject("User", user);
db.SaveChanges();