我被这个错误困住了,找不到解决办法。我已经尝试了几件事,但无法提出解决方案。
这是我的问题:
代码:
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”中的角色“User_LastUpdatedBy_Source”中无效。因为从属角色属性不是关键属性,所以从属角色的多重性的上限必须是“*”。'。有关更多详细信息,请参阅服务器日志。异常堆栈跟踪是:
在 System.Data.Entity.DbModelBuilder.Build(DbProviderManifest providerManifest, DbProviderInfo providerInfo) 在 System.Data.Entity.DbModelBuilder.Build(DbConnection providerConnection) 在 System.Data.Entity.Internal.LazyInternalContext.CreateModel(LazyInternalContext internalContext) 在 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.InternalSet
1.Initialize() 在 System.Data.Entity.Internal.Linq.InternalSet1.get_InternalContext() at System.Data.Entity.Infrastructure.DbQuery
1.System.Linq.IQueryable.get_Provider() 在 System.Linq.Queryable.Where[TSource](IQueryable1 source, Expression
1 谓词)在 ProjectTracker.Database.DataAccess.DLAccess.DoesUserExist(String userName) 在 e:\My Own\Projects\ProjectTracker\Database\ProjectTracker.Database.DataAccess\DLAccess.cs:ProjectTracker.Business.BLAccess.BLAccess 的第 31 行.DoesUserExists(String userName) in e:\My Own\Projects\ProjectTracker\Business\ProjectTracker.Business.BLAccess\BLAccess.cs: 第 37 行 ProjectTracker.UI.Web.WS.WebAccess.DoesUserExist(String userName) in e: \My Own\Projects\ProjectTracker\UI\ProjectTracker.UI.Web\WS\WebAccess.svc.cs:第 12 行 SyncInvokeDoesUserExist(Object , Object[] , Object[] ) 在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke( System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) 处 System.ServiceModel.Dispatcher 处的对象实例、Object[] 输入、Object[]& 输出)。System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc& rpc) 上的 ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
请告诉我,我在这里做错了什么......