c#实体框架“无法解析符号”

时间:2014-08-26 12:07:40

标签: c# entity-framework entity-framework-4

我使用实体框架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=&quot;data source=MyServer;initial catalog=MyDB;persist security info=True;user id=MyUser;password=MyPassword;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>

1 个答案:

答案 0 :(得分:1)

好的,我找到了一个解决方案,虽然我不确定它是否是正确的..

我在微软的网站上发现了这篇文章 http://msdn.microsoft.com/en-us/data/jj556581.aspx

我的数据模型上的设置不同。在Code Generation Strategy我有T4Legacy ObjectContext。它已设置为T4,我将其更改为Legacy ObjectContext。然后在.edmx文件下,删除带有.tt扩展名的两个文件。 就我而言,他们是MyDBModel.Context.ttMyDBModel.tt

重建整个解决方案,现在就可以了。

我希望它会对某人有所帮助。