我正在使用 Entity Framework 5 中的数据库优先模型,当我尝试添加行时,出现以下错误:“在程序集中找不到视图或可以为表 'ui_renewals' 生成视图。”
该表存在于我的 EDMX 中,并且模板生成了一个 ui_renewals 类。我已经从 EDMX 中删除了该表,并使用“从数据库更新模型”选项再次添加它,我得到了同样的错误。为它创建一个单独的连接可以解决这个问题,但这似乎是一个不太理想的解决方案(更像是一个杂物),更不用说它使将来更难以维护。
关于如何解决这个问题的任何想法,以便我可以在 ui_renewals 中添加或更新(我都尝试过)一行?
这是我目前正在使用的代码 - 之前唯一的区别是使用 db 作为 DBContext 而不是 ui (是的,收据拼写错误 - 必须喜欢遗留的东西)
[HttpPost]
public bool UpdateTeacher(string login_id, string password, UIRenewal data)
{
if (ModelState.IsValid)
{
// map from UIRenewal VM to ui_renewal
ui_renewals Renewal = Mapper.Map<UIRenewal, ui_renewals>(data);
// check to see if this is a new entry or not
var tmp = ui.ui_renewals.Find(Renewal.reciept);
if (tmp == null)
ui.ui_renewals.Add(Renewal);
else
{
// mark as modified
db.Entry(Renewal).State = EntityState.Modified;
}
// save it
try
{
ui.SaveChanges();
}
catch (DBConcurrencyException)
{
return false;
}
return true;
}
return false;
}
我应该提到我在模型中确实有一个视图(v_recent_license)。