C# 首先是实体框架代码,错误:";EntityType';报价顺序';“未定义密钥”;
我首先使用实体框架代码。 我试图创建一个名为OfferSequence的新实体,以便在数据库中自动创建表 问题是,当我尝试用新实体更新数据库时,会出现以下错误 在模型生成过程中检测到一个或多个验证错误: ERP.EnterpriseDataAccessLayer.EnterpriseData.OfferSequence:: EntityType“OfferSequence”未定义键。为此定义密钥 EntityType。OfferSequences:EntityType:EntitySet“OfferSequences”为 基于未定义键的“OfferSequence”类型 但是,正如您在下面看到的,键在SequenceStart属性上定义得很清楚C# 首先是实体框架代码,错误:";EntityType';报价顺序';“未定义密钥”;,c#,entity-framework,C#,Entity Framework,我首先使用实体框架代码。 我试图创建一个名为OfferSequence的新实体,以便在数据库中自动创建表 问题是,当我尝试用新实体更新数据库时,会出现以下错误 在模型生成过程中检测到一个或多个验证错误: ERP.EnterpriseDataAccessLayer.EnterpriseData.OfferSequence:: EntityType“OfferSequence”未定义键。为此定义密钥 EntityType。OfferSequences:EntityType:EntitySet“Off
public class OfferSequence : IEntity<OfferSequence>
{
public OfferSequence(uint sequenceStart, uint incrementalCounter, uint annualIncrementalCounter)
{
Validate.EnsureIsTrue(incrementalCounter >= sequenceStart && annualIncrementalCounter >= sequenceStart, "Counters can not be lower than sequence start");
SequenceStart = sequenceStart;
IncrementalCounter = incrementalCounter;
AnnualIncrementalCounter = annualIncrementalCounter;
LastUpdateDate = DateTime.UtcNow;
}
[Key]
public uint SequenceStart { get; private set; }
public uint IncrementalCounter { get; private set; }
public uint AnnualIncrementalCounter { get; private set; }
public DateTime LastUpdateDate { get; private set; }
public OfferSequence Clone()
{
OfferSequence copy = new OfferSequence(SequenceStart, IncrementalCounter, AnnualIncrementalCounter);
return copy;
}
object ICloneable.Clone()
{
return Clone();
}
public void Modify(OfferSequence obj)
{
AnnualIncrementalCounter = obj.AnnualIncrementalCounter;
IncrementalCounter = obj.IncrementalCounter;
LastUpdateDate = DateTime.UtcNow;
}
}
public类OfferSequence:Entity
{
公开发行序列(单位序列开始、单位递增计数器、单位年度递增计数器)
{
Validate.EnsureIsTrue(incrementalCounter>=sequenceStart&&annualIncrementalCounter>=sequenceStart,“计数器不能低于sequenceStart”);
SequenceStart=SequenceStart;
IncrementalCounter=IncrementalCounter;
AnnualIncrementalCounter=AnnualIncrementalCounter;
LastUpdateDate=DateTime.UtcNow;
}
[关键]
public uint SequenceStart{get;private set;}
public uint IncrementalCounter{get;private set;}
public uint AnnualIncrementalCounter{get;private set;}
public DateTime LastUpdateDate{get;private set;}
公开发行序列克隆()
{
报价序列副本=新报价序列(SequenceStart、IncrementalCounter、AnnualIncrementalCounter);
返回副本;
}
对象ICloneable.Clone()
{
返回克隆();
}
公共无效修改(OfferSequence obj)
{
AnnualIncrementalCounter=obj.AnnualIncrementalCounter;
IncrementalCounter=obj.IncrementalCounter;
LastUpdateDate=DateTime.UtcNow;
}
}
看来您不能在实体框架中使用未签名的int作为键:我没有任何官方的说法,但一个关于它的答案建议您这样做
编辑:实际上是英孚团队对此的官方说法。他们是这么说的:
EF团队分类:EFs内部不支持无符号整数
它用来存储元数据的模型。我们应该考虑支持。
或者有办法处理不明确的类型
支持
错误消息在这里肯定可以得到改进,这是一种症状
我们的规则是,代码首先忽略不受支持对象的任何属性
类型。我们可以检测到这种情况并提供更好的信息
考虑到我们在EF6版本中的位置,我们不会改变
现在什么都可以。移动到未来,考虑即将发布的版本。
似乎您不能在实体框架中使用无符号int作为键:我没有任何官方的说法,但一个答案表明这一点,事实也是如此 编辑:实际上是英孚团队对此的官方说法。他们是这么说的: EF团队分类:EFs内部不支持无符号整数 它用来存储元数据的模型。我们应该考虑支持。 或者有办法处理不明确的类型 支持 错误消息在这里肯定可以得到改进,这是一种症状 我们的规则是,代码首先忽略不受支持对象的任何属性 类型。我们可以检测到这种情况并提供更好的信息 考虑到我们在EF6版本中的位置,我们不会改变 现在什么都可以。移动到未来,考虑即将发布的版本。
似乎您不能在实体框架中使用无符号int作为键:我没有任何官方的说法,但一个答案表明这一点,事实也是如此 编辑:实际上是英孚团队对此的官方说法。他们是这么说的: EF团队分类:EFs内部不支持无符号整数 它用来存储元数据的模型。我们应该考虑支持。 或者有办法处理不明确的类型 支持 错误消息在这里肯定可以得到改进,这是一种症状 我们的规则是,代码首先忽略不受支持对象的任何属性 类型。我们可以检测到这种情况并提供更好的信息 考虑到我们在EF6版本中的位置,我们不会改变 现在什么都可以。移动到未来,考虑即将发布的版本。
似乎您不能在实体框架中使用无符号int作为键:我没有任何官方的说法,但一个答案表明这一点,事实也是如此 编辑:实际上是英孚团队对此的官方说法。他们是这么说的: EF团队分类:EFs内部不支持无符号整数 它用来存储元数据的模型。我们应该考虑支持。 或者有办法处理不明确的类型 支持 错误消息在这里肯定可以得到改进,这是一种症状 我们的规则是,代码首先忽略不受支持对象的任何属性 类型。我们可以检测到这种情况并提供更好的信息 考虑到我们在EF6版本中的位置,我们不会改变 现在什么都可以。移动到未来,考虑即将发布的版本。
您没有无参数构造函数,不确定EF是否可以处理此情况。您没有无参数构造函数,不确定EF是否可以处理此情况。您没有无参数构造函数,不确定EF是否可以处理此情况。您没有无参数构造函数,不确定EF是否可以处理此情况。