2013-07-09 3 views
0

Может ли кто-нибудь помочь мне в помощи:Невозможно добавить строку в базу данных с помощью службы WCF

У меня есть база данных, построенная с использованием сущности. В моем простом проекте все, что я пытаюсь сделать, это добавить новую строку в базу данных, вот и все.

У меня есть один класс для базы данных, названного 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 (имя строки), он говорит, что List of Users in UsersDB имеет значение NULL и не может добавить нового пользователя в базу данных. Я использовал тот же метод в другом приложении 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

Где это провал? В консольном приложении или в WCF? –

ответ

0

Может быть, вы должны попробовать использовать следующий код:

Вместо:

List<User> Users { get; set; } 

Проще говоря:

DbSet<User> Users { get; set; } 

Я всегда использую DbSet или IDbSet в своем DBContext, и он всегда работает.

+0

Большое спасибо! Он решил проблему :) –

+0

это очень хорошо;) – Mike1991

0

Используйте этот

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

Вместо

db.Users.Add(user); 
db.SaveChanges(); 
0

попробовать это

db.AddObject("User", user); 
db.SaveChanges(); 
Смежные вопросы