我使用实体框架代码优先。 我正在尝试创建一个名为OfferSequence的新实体,以便在数据库中自动创建该表。实体框架代码优先,错误:“EntityType'OfferSequence'没有定义键”
的问题是,当我尝试用新的实体来更新数据库,我收到以下错误
One or more validation errors were detected during model generation:
ERP.EnterpriseDataAccessLayer.EnterpriseData.OfferSequence: : EntityType 'OfferSequence' has no key defined. Define the key for this EntityType. OfferSequences: EntityType: EntitySet 'OfferSequences' is based on type 'OfferSequence' that has no keys defined.
然而,正如你可以看到下面,关键是clearily对物业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可以处理这种情况。 – tschmit007