我正在使用Sql server 2014并制作了ADO.NET实体数据模型。它生成了这个模型:
我正在尝试将检索到的邮件添加到我的数据库中。它看起来像这样:
public int StoreMail(PhishingMail PhishingMail)
{
using (var phishingMailStorage = new PhishFinderDB2Entities2())
{
// phishingMailStorage.Database.Connection.Open();
phishingMailStorage.PhishingMail.Add(PhishingMail);
phishingMailStorage.SaveChanges();
}
return PhishingMail.PhishingMailId;
}
每当我调试程序时。我被困在这个部分:
phishingMailStorage.PhishingMail.Add(PhishingMail);
它给我的元数据异常是unhandeld异常:未处理 发生了'System.Data.Entity.Core.MetadataException'类型的异常 在EntityFramework.dll中附加信息:无法加载 指定的元数据资源。
这是我的连接字符串: 我真的不知道为什么它会产生这个巨大的字符串。这可能会导致问题。
<add name="PhishFinderDB2Entities2" connectionString="metadata=res://*/DataAccess.PhishFinderModel.csdl|res://*/DataAccess.PhishFinderModel.ssdl|res://*/DataAccess.PhishFinderModel.msl;provider=System.Data.SqlClient;provider connection string="data source=WIN7DEV;initial catalog=PhishFinderDB;integrated security=True;pooling=False;multipleactiveresultsets=True;application name=EntityFramework"" providerName="System.Data.EntityClient" /><add name="PhishFinderDB2Entities" connectionString="metadata=res://*/DataAccess.PhishFinderModel.csdl|res://*/DataAccess.PhishFinderModel.ssdl|res://*/DataAccess.PhishFinderModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(local);initial catalog=PhishFinderDB2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /><add name="PhishFinderDB2" connectionString="metadata=res://*/DataAccess.Model1.csdl|res://*/DataAccess.Model1.ssdl|res://*/DataAccess.Model1.msl;provider=System.Data.SqlClient;provider connection string="data source=WPNLL0038874\SQLEXPRESS;initial catalog=PhishFinderDB2;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" /></connectionStrings>
你知道为什么我得到这个例外吗? 感谢
答案 0 :(得分:1)
尝试删除生成的PhishFinderDB2.edmx
(如果您自行调整,请记住保存数据)。
删除连接字符串。
然后重新生成整个PhishFinderDB2 ado.net模型。
对我来说这有多次帮助。