gpt4 book ai didi

.net - WCF ExtensionDataObject 导致 Entity Framework 4.2 创建数据库失败

转载 作者:行者123 更新时间:2023-12-04 06:08:33 33 4
gpt4 key购买 nike

我正在尝试首先使用实体​​框架 4.2 和对象创建 SQL CE 4.0 数据库。

我的类是在 WCF 服务中定义的。

我有一个基类:

public class BaseData
{
public DateTime LastUpdated { get; set; }
public int StatusTypeId { get; set; }
public StatusType StatusType { get; set; }
public RecordStatusEnum RecordStatus { get; set; }
}

和一个继承的类:
public class JobType : BaseData
{
public int JobTypeId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int SortOrder { get; set; }

public virtual ICollection<Role> Roles { get; set; }
}

当基类被 WCF 序列化时,它会添加一个 ExtensionDataObject 属性
    public partial class BaseData : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {

[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;

[global::System.ComponentModel.BrowsableAttribute(false)]
public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
get {
return this.extensionDataField;
}
set {
this.extensionDataField = value;
}
}

这会导致 EF 在从 JobType 类创建表时崩溃,并出现以下错误:

没有为 Set JobTypes 中的 JobType.ExtensionData 属性指定映射

我该如何解决这个问题?

最佳答案

在您的数据上下文定义中,覆盖 OnModelCreating 以忽略 extensiondata 属性来自的类:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Ignore<System.Runtime.Serialization.ExtensionDataObject>();
base.OnModelCreating(modelBuilder);
}

关于.net - WCF ExtensionDataObject 导致 Entity Framework 4.2 创建数据库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8070196/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com