3

飲食店向けのアプリを作りたいです。計算レシピについてです。

私はドメインクラスを持っています: - Ingredient - Recipe - RecipeItem

Recipe には RecipeItem の List があります。

RecipeItem は Ingredient でも Recipe でもあります。

そのため、2 つのプロパティ (Id、Name) を持つ Interface IItem を使用しています。クラスでインターフェイスを使用すると、db ジェネレーターはこのフィールドを無視します。

ここで私のクラスを見てください:

public class Ingredient : IItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public double Price { get; set; }
    }

public class Recipe : IItem
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public List<RecipeItem> RecipeItems { get; set; }
    }

public class RecipeItem
    {
        public int Id { get; set; }
        public IItem Item { get; set; }
        public double Quantity { get; set; }
    }

CodeFirst は、上記のテーブルを使用してデータベースを自動的に生成します。

データベーステーブル RecipeItem を次のようにしたいと思います。

> Id 
> Quantity 
> Recipe_Id - FK of Recipe ID 
> RecipePointer - Nullable FK of specific Recipe
> IngredientPointer - Nullable FK of specific Ingredient

しかし、次のものしかありません。

> Id 
> Quantity 
> Recipe_Id - FK of Recipe ID 

例えば ​​Ingredient を RecipeItem に入れると、Ingredient の Id が IngredientPointer に挿入されます。

マッピングに FLUENT API を使用したいのですが、方法がわかりません。

私が望むことが可能かどうか、または私の問題を解決するためのより良い方法があるかどうかはわかりません。

Pluralsight で既に CodeFirst のビデオを見て、フォーラムを閲覧しましたが、答えが見つかりません。

助けてくれてありがとう。

4

2 に答える 2

0

DataAnnotations を使用して、EF で DB 生成スクリプトを生成する方法を明確にする必要があります。

あなたのソリューションのために私はあなたを提案することができます

InversProperty および ForeignKey 属性を使用する

次のリソースをご覧ください。

https://msdn.microsoft.com/en-us/data/jj193542.aspx

https://msdn.microsoft.com/en-us/data/gg193958.aspx

于 2016-05-29T13:08:58.113 に答える