【发布时间】:2013-02-06 10:01:06
【问题描述】:
我被这个错误困住了,找不到解决办法。我尝试了几件事,但无法提出解决方案。
这是我的问题:
代码:
namespace ProjectTracker.Database.Entities
{
[DataContract]
public class User
{
[DataMember]
public int Id { get; set; }
[Required]
[MaxLength(50)]
[DataMember]
public string UserName { get; set; }
[Required]
[MaxLength(100)]
[DataType(DataType.Password)]
[DataMember]
public string Password { get; set; }
[DataMember]
public bool IsPasswordExpired { get; set; }
[Required]
[DataMember]
public DateTime CreatedDate { get; set; }
[Required]
[ForeignKey("CreatedBy")]
[DataMember]
public int CreatedByUserId { get; set; }
[DataMember]
public virtual User CreatedBy { get; set; }
[Required]
[DataMember]
public DateTime LastUpdatedDate { get; set; }
[ForeignKey("LastUpdatedBy")]
[DataMember]
public int? LastUpdatedByUserId { get; set; }
[DataMember]
public virtual User LastUpdatedBy { get; set; }
}
}
以下是我从 Web 服务调用它时得到的异常详细信息:
请求错误 服务器在处理请求时遇到错误。 异常消息是“检测到一个或多个验证错误 在模型生成期间:\tSystem.Data.Entity.Edm.EdmAssociationEnd:: 多重性在角色“User_LastUpdatedBy_Source”中无效 关系'User_LastUpdatedBy'。因为依赖角色 属性不是关键属性,的上限 从属角色的多重性必须是“*”。 '。查看服务器日志 更多细节。异常堆栈跟踪是:
在 System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) 在 System.Data.Entity.DbModelBuilder.Build(DbConnection 提供者连接)在 System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext 内部上下文)在 System.Data.Entity.Internal.RetryLazy
2.GetValue(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeContext() at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) at System.Data.Entity.Internal.Linq.InternalSet1.Initialize() 在 System.Data.Entity.Internal.Linq.InternalSet1.get_InternalContext() at System.Data.Entity.Infrastructure.DbQuery1.System.Linq.IQueryable.get_Provider() 在 System.Linq.Queryable.Where[TSource](IQueryable1 source, Expression1 谓词) 在 ProjectTracker.Database.DataAccess.DLAccess.DoesUserExist(字符串 用户名)在 e:\My Own\Projects\ProjectTracker\Database\ProjectTracker.Database.DataAccess\DLAccess.cs:line 31 在 ProjectTracker.Business.BLAccess.BLAccess.DoesUserExists(字符串 用户名)在 e:\My Own\Projects\ProjectTracker\Business\ProjectTracker.Business.BLAccess\BLAccess.cs:line 37 在 ProjectTracker.UI.Web.WS.WebAccess.DoesUserExist(字符串 用户名)在 e:\My Own\Projects\ProjectTracker\UI\ProjectTracker.UI.Web\WS\WebAccess.svc.cs:line 12 在 SyncInvokeDoesUserExist(Object , Object[] , Object[] ) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例,Object[] 输入,Object[]& 输出)在 System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& RPC)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& RPC)在 System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 在 System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
请告诉我,我在这里做错了什么......
【问题讨论】:
-
我已经尝试了几件事 很好!但是为了防止我们重做所有这些,你能告诉你你尝试了什么吗?
-
@GertArnold 我查看了这个链接,但这让我更加困惑......bit.ly/VTP0Su 和这个bit.ly/11Ucqri 但这与“代码优先”无关......跨度>
标签: .net entity-framework code-first .net-4.5