在实体框架中使用外键的表中添加数据
本文关键字:添加 数据 实体 框架 | 更新日期: 2023-09-27 18:37:12
我正在努力在具有外键关系的表中插入数据。我确实读过一个
关于如何做到这一点的文章很少,但没有多大帮助,并决定提出一个新问题。
场景:
用户表在角色表 ID 上具有外键。
在角色表上,Id 是整数,并且是自动递增的
这是我的代码,
SalesTrainerEntities db = new SalesTrainerEntities();
var user = new User();
var role = db.Role.FirstOrDefault(r => r.ID == 1);
user.UserName = "test";
user.Pass = "123";
user.CreatedBy = "test";
user.DtCreated = DateTime.Now;
user.Role = role;
//user.RoleId = 1;
//user.EntityKey = new EntityKey("Role", "ID", 1);
//user.RoleReference.EntityKey = new EntityKey("Role", "ID", 1);
db.AddToUser(user);
db.SaveChanges();
在保存更改时,我收到错误,指出
Unable to update the EntitySet 'User' because it has a DefiningQuery and no <InsertFunction> element exists in the <ModificationFunctionMapping> element to support the current operation.
任何指示将不胜感激。
问候
萨布
我曾经以这种方式添加子实体,我假设用户和角色之间的关系为 1:N。
using (Entities db = new Entities())
{
var user = new User();
// fill user data..
var newRole = db.Role.FirstOrDefault(r => r.ID == 1);
if(newRole!=null)
{
user.roles.AddObject(newRole);
db.users.AddObject(user);
db.SaveChanges();
}
}
//Edit - Updating db
using (Entities db = new Entities())
{
var existingUser = db.User.FirstOrDefault(r => r.ID == 100);
if(existingUser !=null)
{
existingUser.Name = "New name";
db.SaveChanges();
}
}