2

私はこのエラーメッセージを受け取り続けています:

例外の詳細:MySql.Data.MySqlClient.MySqlException:「フィールドリスト」の不明な列「Extent1.RuleType」

私のマッピング:

public abstract class AlertRule
{
    private DateTime? _updateDateTime = DateTime.Now;

    [Key]
    public int Id { get; set; }

    public int TemplateId { get; set; }
    public virtual AlertRuleTemplate Template { get; set; }

    public string RuleType
    {
        get
        {
            if (Template == null)
                return null;
            return Template.Name;
        }
    }
}
public class AlertOutageRule:AlertRule
{
    public virtual List<AlertRuleOutage> AlertRuleOutages { get; set; }
}
public class AlertMissingRule:AlertRule{}
public class AlertMetadataRule:AlertRule{}

        public DbSet<AlertRule> AlertRules { get; set; }

        modelBuilder.Entity<AlertRule>()
            .Map<AlertOutageRule>(m => m.Requires("RuleType").HasValue("NewsOutage"))
            .Map<AlertMetadataRule>(m => m.Requires("RuleType").HasValue("NewsMetadata"))
            .Map<AlertMissingRule>(m => m.Requires("RuleType").HasValue("NewsMissing"));
            //.Property(m => m.TemplateId).HasColumnType("int");

        modelBuilder.Entity<AlertRule>().ToTable("AlertRule");
4

1 に答える 1

2

public string RuleType読み取り専用(no)として定義されていますset{..}

EFは、このプロパティをデータベースにマップしません。DBスキーマを参照してください。2つの列(Id、TemplateId)のみが生成されます。

于 2012-12-28T03:40:58.657 に答える