小编Ale*_*vig的帖子

EntityFramework 4.1,context.Entities.Add有时会将FK设置为​​NULL

我有这个奇怪的问题,燃烧的时间超过了应有的时间.

我的主要问题是: 当添加实体时,什么可能导致EF 4.1 Code First将外键设置为NULL

问题是这样的:我有一个文件用户列表,如果这些用户还没有,那么这些用户必须插入到我的数据库中.

我有这样的事情:

foreach (var u in usersFromFile) {
    var userProfile = context.Users
        .FirstOrDefault(user=>
            user.EmployeeId == u.EmployeeId && user.CompanyId == 1);
    if (userProfile == null) {
        User newUser = new User();
        newUser.EmployeeId = u.EmployeeId;
        newUser.CompanyId = 1;
        context.Users.Add(newUser); //This will sometimes set CompanyId = NULL
    }
}
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

某些用户将无法正确添加到"用户"表中.他们得到CompanyId == NULL,因此他们不属于公司.

我也试过像这样直接注入SQL:

var query = @"INSERT INTO [dbo].[Users] 
              ([CompanyId],[EmployeeId]) VALUES (3,@emplid)";

context.Database.ExecuteSqlCommand(query, new SqlParameter[] {
    new SqlParameter("emplid", u.EmployeeId)});
Run Code Online (Sandbox Code Playgroud)
  • 我试图访问Company对象上的Users列表.这不起作用.
  • 我曾尝试使用context.Users.Create()而不是new User().什么都不改变.
  • 我试过注入SQL,仍然是同样的问题.如果从Studio …

c# sql entity-framework

1
推荐指数
1
解决办法
234
查看次数

标签 统计

c# ×1

entity-framework ×1

sql ×1