2014-02-26 40 views
1

我有这个错误,它的窃听我的地狱已经失去了一天试图找出它可以有人帮助我请我相信这是与我做的外键,但不能弄清楚什么是错的。无法理解这与实体框架

概念模型类型'socialprofilesModel.FK_Logins_Users'中的Member'Users'在CLR类型'socialprofilesModel.FK_Logins_Users1'中不存在。

说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

Exception Details: System.Data.MappingException: The Member 'Users' in the conceptual model type 'socialprofilesModel.FK_Logins_Users' is not present in the CLR type 'socialprofilesModel.FK_Logins_Users1'. 

源错误:

Line 22: 
Line 23:    List<SPLogin> validUser; 
Line 24:    validUser = socialProfileContext.ValidateUser(txtuserName.Text, txtPassword.Text); 
Line 25:    if (validUser !=null) 
Line 26:     { 

Source File: c:\Users\dave\Documents\Visual Studio 2012\WebSites\cmsforletsmakeapps\admin\Login.aspx.cs Line: 24 

堆栈跟踪:

[MappingException: The Member 'Users' in the conceptual model type 'socialprofilesModel.FK_Logins_Users' is not present in the CLR type 'socialprofilesModel.FK_Logins_Users1'.] 
    System.Data.Mapping.DefaultObjectMappingItemCollection.GetObjectMember(EdmMember edmMember, StructuralType objectType) +8321746 
    System.Data.Mapping.DefaultObjectMappingItemCollection.LoadAssociationTypeMapping(ObjectTypeMapping objectMapping, EdmType edmType, EdmType objectType, DefaultObjectMappingItemCollection ocItemCollection, Dictionary`2 typeMappings) +169 
    System.Data.Mapping.DefaultObjectMappingItemCollection.LoadObjectMapping(EdmType edmType, EdmType objectType, DefaultObjectMappingItemCollection ocItemCollection, Dictionary`2 typeMappings) +234 
    System.Data.Mapping.DefaultObjectMappingItemCollection.LoadTypeMapping(EdmType edmType, EdmType objectType, DefaultObjectMappingItemCollection ocItemCollection, Dictionary`2 typeMappings) +100 
    System.Data.Mapping.DefaultObjectMappingItemCollection.LoadEntityTypeOrComplexTypeMapping(ObjectTypeMapping objectMapping, EdmType edmType, EdmType objectType, DefaultObjectMappingItemCollection ocItemCollection, Dictionary`2 typeMappings) +445 
    System.Data.Mapping.DefaultObjectMappingItemCollection.LoadObjectMapping(EdmType edmType, EdmType objectType, DefaultObjectMappingItemCollection ocItemCollection, Dictionary`2 typeMappings) +175 
    System.Data.Mapping.DefaultObjectMappingItemCollection.LoadObjectMapping(EdmType cdmType, EdmType objectType, DefaultObjectMappingItemCollection ocItemCollection) +82 
    System.Data.Mapping.DefaultObjectMappingItemCollection.TryGetMap(String identity, DataSpace typeSpace, Boolean ignoreCase, Map& map) +333 
    System.Data.Metadata.Edm.ClrPerspective.TryGetTypeByName(String fullName, Boolean ignoreCase, TypeUsage& typeUsage) +91 
    System.Data.Objects.ObjectContext.GetTypeUsage(Type entityCLRType) +111 
    System.Data.Objects.ObjectContext.GetEntitySetForNameAndType(String entitySetName, Type entityCLRType, String exceptionParameterName) +30 
    System.Data.Objects.ObjectContext.CreateObjectSet(String entitySetName) +60 
    SPDataContext.socialprofilesEntities.get_SPLogins() +102 
    SPDataContext.EntityFramework.MyContext.ValidateUser(String username, String password) +165 

[EntityContextException: ValidateUser failed.] 
    SPDataContext.EntityFramework.MyContext.ValidateUser(String username, String password) +1442 
    admin_Login.btnlogin_Click(Object sender, EventArgs e) in c:\Users\dave\Documents\Visual Studio 2012\WebSites\cmsforletsmakeapps\admin\Login.aspx.cs:24 
    Telerik.Web.UI.RadButton.OnClick(ButtonClickEventArgs e) +134 
    Telerik.Web.UI.RadButton.RaisePostBackEvent(String eventArgument) +284 
    Telerik.Web.UI.RadButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +42 
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +9703558 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724 

DB编辑请找我的EDMX文件请注意,我只引擎收录它引起的长度将超过什么允许是张贴所以请原谅我,如果不正确的方式。

http://pastebin.com/hZU8zmRu

+0

你能分享你的用户模型的来源吗? –

+0

@MichaelDunlap在栈上做这件事的最好方法是什么 – rogue39nin

+0

如果你使用EF Code-First,你可以分享你的模型的源代码。如果你使用其他的东西,你仍然需要分享'socialprofilesModel'与代码相关的'Users'的关系。 –

回答

1

我对这个问题完全没有解决办法,但我几件事情你可以检查和测试:

  • 你EDMX文件版本3:

    <edmx:Edmx Version="3.0" ...> 
    

    从我自己的项目我可以看到版本3在.NET 4.5中使用(而不是使用EDMX版本2的.NET 4.0)。此外,该文件中出现的UseStrongSpatialTypes属性指示该文件适用于.NET 4.5。或者您是否下载并使用EF 6 Nuget包? EF 6甚至可以在.NET 4.0下支持版本3,但我不确定。

  • 您的异常消息中的搜索字符串FK_Logins_UsersFK_Logins_Users1都不能在整个EDMX文件中找到。 (但是在名称中有一个FK_SPLogins_Users以及附加的“SP”)。您是否粘贴了正好是的例外消息?如果是,则表示嵌入在生产/测试系统中发生错误的组件中的EDMX不是您在问题中粘贴的EDMX。 EDMX是否可能被更改,但应用程序未重新编译/重新部署?

  • 概念模型部分无法包含“成员”Users(作为例外声明),但名称为User的成员。你有没有在某个时候打开或关闭名称复数化?无论如何,它再次表明您的问题中的EDMX与部署的EDMX不同。在您的EDMX

  • 代码生成策略是Default

    <DesignerProperty Name="CodeGenerationStrategy" Value="Default" /> 
    

    这意味着你应该有下VS解决方案资源管理您的EDMX文件XXX.Designer.cs文件(打开从EDMX文件留下的+节点)。该文件包含从EntityObject派生的实体生成的代码(=“CLR类型”,例外情况正在讨论)。也许这个文件并不是最新的EDMX文件,除非代码生成在模型更改后没有自动运行,或者手动更改了手动代码文件或手动更改了XML编辑器中的EDMX文件,否则不应该发生。在解决方案资源管理器中右键单击edmx文件以强制生成代码时,可以尝试使用“运行自定义工具”(或类似工具)。

所有的一切问题非常模样的部署EDMX和部署的代码不匹配,你应该在VS仔细一定检查与您的版本部署版本或重新运行自定义代码生成工具,并重新编译和重新部署应用程序。