0

有人可以帮我解决这个问题吗:

我有一个用实体框架构建的数据库。在我的简单项目中,我要做的就是在数据库中添加一个新行,仅此而已。

我有一个数据库类,名为 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(string name) 时,它都会说 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();
    }
4

3 回答 3

0

尝试这个

db.AddObject("User", user);
db.SaveChanges();
于 2013-07-09T09:29:45.370 回答
0

用这个

db.Users.InsertAllOnSubmit(user);
db.SubmitChanges();

代替

 db.Users.Add(user);
 db.SaveChanges();
于 2013-07-09T06:38:50.380 回答
0

也许您应该尝试使用以下代码:

代替:

List<User> Users { get; set; }

只需尝试:

DbSet<User> Users { get; set; }

我总是在我的 DBContext 中使用 DbSet 或 IDbSet,它总是有效的。

于 2013-07-09T05:00:18.060 回答