Entity framework EF迁移种子-无法创建类型为';Application.Model.TranslationItem';
TranslationItem模型:Entity framework EF迁移种子-无法创建类型为';Application.Model.TranslationItem';,entity-framework,migration,code-first,seed,database-update,Entity Framework,Migration,Code First,Seed,Database Update,TranslationItem模型: [DataContract] public class TranslationItem : CloneableBaseEntity<TranslationItem>, IValidatableObject { public int TranslationId { get; set; } public Translation Translation { get; set; } public int Lcid { get;
[DataContract]
public class TranslationItem : CloneableBaseEntity<TranslationItem>, IValidatableObject
{
public int TranslationId { get; set; }
public Translation Translation { get; set; }
public int Lcid { get; set; }
private string _text;
public string Text
{
get { return _text; }
set
{
_text = value;
RaisePropertyChanged("Text");
}
}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var t = validationContext.ObjectInstance as TranslationItem;
return t.Translation.Validate(validationContext);
}
}
我不太确定如何解决这个问题。
我已经尝试先插入我的TranslationItems,但当我这样做时,验证失败,因为我想需要一个FK to Translations
请帮忙 我自己用一点技巧修复了它(不完全是我喜欢的解决方案,但它现在可以工作了) 我的问题是:似乎使用
AddOrUpdate(…)
只能比较基元类型或枚举类型
因此,我添加了一个名为SeedId
的附加id来标识我的实体
因此,我在seed方法中的代码现在非常简单:
foreach (EventType eventtype in PqsDbContext.getStdEventTypes())
{
context.EventTypes.AddOrUpdate(et => et.SeedId, eventtype);
}
我自己用一点小技巧修复了它(不完全是我喜欢的解决方案,但它现在可以工作了) 我的问题是:似乎使用
AddOrUpdate(…)
只能比较基元类型或枚举类型
因此,我添加了一个名为SeedId
的附加id来标识我的实体
因此,我在seed方法中的代码现在非常简单:
foreach (EventType eventtype in PqsDbContext.getStdEventTypes())
{
context.EventTypes.AddOrUpdate(et => et.SeedId, eventtype);
}
Unable to create a constant value of type 'PQS.Model.TranslationItem'. Only primitive types or enumeration types are supported in this context.
foreach (EventType eventtype in PqsDbContext.getStdEventTypes())
{
context.EventTypes.AddOrUpdate(et => et.SeedId, eventtype);
}