0

新しい移行を生成しましたが、何らかの理由で、使用しているすべての列挙型が削除され、db スキーマにそのサポートが追加されません。Code-Firstで定義されていますが

これらは私の列挙型です:

using System;
namespace StockManagement.Enums
{
    public enum InventoryMethod
    {
        FIFO = 0,
        LIFO = 1,
        WEIGHTED_AVERAGE = 2
    }

    public enum TransactionDirection
    {
        BUY = 0,
        SELL = 1
    }
}

これらは私の2つの関連するクラスです:

public class User
{
    [Key]
    public int UserID { get; set; }
    public string UserName { get; set; }
    public string Email { get; set; }
    public string Password { get; set; }
    /// <summary>
    /// FIFO = First In First Out
    /// LIFO = Last In First Out
    /// AVG = Average
   /// </summary>
    public InventoryMethod InventoryMethod { get; set; }
    public virtual ICollection<Article> Articles { get; set; }
}

public class ArticleTransaction
{
    [Key]
    public int ArticleTransactionID { get; set; }
    public DateTime TransactionDate { get; set; }
    /// <summary>
    /// Buy = Buying goods from suppliers
    /// Sell = Selling goods to customers
    /// </summary>
    public TransactionDirection BuyOrSell { get; set; }
    public int Number { get; set; }
    public double PriceExclusive { get; set; }
    public virtual Article Article { get; set; }
}

これは私の生成された移行です:

using System.ComponentModel.DataAnnotations;
using System;
using StockManagement.Enums;
public class ArticleTransaction
{
    [Key]
    public int ArticleTransactionID { get; set; }


    public DateTime TransactionDate { get; set; }
    /// <summary>
    /// Buy = Buying goods from suppliers
    /// Sell = Selling goods to customers
    /// </summary>
    public TransactionDirection BuyOrSell { get; set; }
    public int Number { get; set; }
    public double PriceExclusive { get; set; }

    public virtual Article Article { get; set; }

}

私はEF 5.0を持っていますが、これは最近変更されていません:)なぜこれが突然起こったのか、そしてこれを修正する方法について誰かが考えていますか?

4

1 に答える 1

1

ほとんどのデータベースには、列挙型の概念がありません。これは、対応する列挙型の基になる型の列によって列挙型プロパティがサポートされる EF に反映されます。たとえば、InventoryMethod 型の基になる列挙型は System.Int32/int (特定の基になる型が指定されていない場合の既定の基になる型) であるため、この型のすべてのプロパティは int 型 (C# マップでは int) の列によってサポートされます。 EDM の Edm.Int32 に変換し、データベースの int にマップします (ここでは Sql Server について話しています)。

于 2012-09-12T04:12:54.023 に答える