【发布时间】:2015-10-27 16:07:09
【问题描述】:
我正在使用实体框架代码优先。 我正在尝试创建一个名为 OfferSequence 的新实体,以便在数据库中自动创建表。
问题是当我尝试使用新实体更新数据库时,出现以下错误
在模型生成过程中检测到一个或多个验证错误:
ERP.EnterpriseDataAccessLayer.EnterpriseData.OfferSequence: : EntityType 'OfferSequence' 没有定义键。为此定义密钥 实体类型。 OfferSequences: EntityType: EntitySet 'OfferSequences' 是 基于没有定义键的“OfferSequence”类型。
但是,如下所示,键在属性 SequenceStart 上明确定义
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;
}
}
【问题讨论】:
-
你没有无参数构造函数,不确定 EF 能否处理这种情况。
标签: c# entity-framework