无法使用WCF服务在数据库中添加行

时间:2013-07-09 01:44:41

标签: c# wcf entity-framework

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

我有一个使用实体框架构建的数据库。在我的简单项目中,我所要做的就是在数据库中添加一个新行,就是这样。

我有一个数据库类,名为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();
    }

3 个答案:

答案 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();