我使用实体框架4创建了一个示例项目。这很简单,我通过从数据库中选择EF Designer来创建一个新的数据模型。创建数据连接并从我的数据库中选择所有表。看起来很好 - 我能够看到设计师的表格。
问题是我无法添加或删除对象。我的db类看起来像这样:
namespace DBAccess
{
public class DatabaseAccess : IDisposable
{
private MyDBModel dbModel;
public DatabaseAccess ()
{
dbModel= new MyDBModel();
}
public Accounts AddAccount()
{
var A = new Accounts();
dbModel.Accounts.AddObject(a); // here's the "Cannot resolve symbol 'AddObject'" error
}
public void DeleteAccount(Accounts a)
{
dbModel.DeleteObject(a); // here's the "Cannot resolve symbol 'DeleteObject'" error
}
}
}
为什么我不能使用这些方法?我之前在其他项目中使用过它们。
这是App.config
文件中的连接字符串:
<connectionStrings>
<add name="MyDBModel" connectionString="metadata=res://*/MyDBModel.csdl|res://*/MyDBModel.ssdl|res://*/MyDBModel.msl;provider=System.Data.SqlClient;provider connection string="data source=MyServer;initial catalog=MyDB;persist security info=True;user id=MyUser;password=MyPassword;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
答案 0 :(得分:1)
好的,我找到了一个解决方案,虽然我不确定它是否是正确的..
我在微软的网站上发现了这篇文章 http://msdn.microsoft.com/en-us/data/jj556581.aspx
我的数据模型上的设置不同。在Code Generation Strategy
我有T4
和Legacy ObjectContext
。它已设置为T4
,我将其更改为Legacy ObjectContext
。然后在.edmx
文件下,删除带有.tt
扩展名的两个文件。
就我而言,他们是MyDBModel.Context.tt
和MyDBModel.tt
。
重建整个解决方案,现在就可以了。
我希望它会对某人有所帮助。