C# 要在实体框架中创建关系,是否必须进行select查询?
我想创建一个Blog对象,它与用户之间有一个关系。要创建关系,我是否必须首先选择用户实体,然后将其设置为博客对象的用户属性?在实体框架中,示例建议将用户对象设置为ViewState,并在需要创建关系(如基本缓存)时检索它 这有必要吗?还有别的办法吗?(就像在linq to sql中,只设置外键而不选择。) 这里是我的代码示例C# 要在实体框架中创建关系,是否必须进行select查询?,c#,entity-framework,linq-to-entities,C#,Entity Framework,Linq To Entities,我想创建一个Blog对象,它与用户之间有一个关系。要创建关系,我是否必须首先选择用户实体,然后将其设置为博客对象的用户属性?在实体框架中,示例建议将用户对象设置为ViewState,并在需要创建关系(如基本缓存)时检索它 这有必要吗?还有别的办法吗?(就像在linq to sql中,只设置外键而不选择。) 这里是我的代码示例 Blog blog = new Blog { Name = blogName, Sl
Blog blog = new Blog
{
Name = blogName,
Slogan = slogan,
User = Entities.Users.First(u => u.Id == userId)
}
Entities.AddToBlogs(blog);
Entities.SaveChanges();
编辑(给另一个提问的机会):有什么不清楚或其他的吗?这是目前官方不支持的 不过,你或许可以绕过它。我还没有尝试过这个,但这个想法在概念上似乎很合理:
这似乎是个好主意,但似乎行不通(我们使用以下解决方案设置外键,而无需从上下文检索相应的实体
Blog blog = new Blog
{
Name = blogName,
Slogan = slogan,
UsersReference.EntityKey = new EntityKey("EntityModel.Users", "UserId", userId)
}
Entities.AddToBlogs(blog);
Entities.SaveChanges();
还是没有答案?你们让我惊讶:)是不清楚还是其他什么?不幸的是,这并没有解决问题。当我这样做的时候,博客的属性被尝试添加,并且由于限制引发了一个异常。这样做的方法是什么?我在DataContext上找不到任何方法来执行此操作。所以我使用了acceptillchanges()。acceptillchanges应该可以。检查实体状态以确保。正如我所说,这是我的猜测;你的要求没有得到官方支持,我查过了。但当我尝试添加博客实体时,用户的状态变为添加状态,无法手动设置。好的,我们可以将该想法添加到现实生活中不起作用的好想法的容器中,然后:(