7

現在、EF とコード ファーストのアプローチを使用して、既存のシステムからデータベースを構築しています。

「コア」クラスには最小限の変更を加えることが推奨されます。このため、Structs と EF の回避策を見つけたいと思います。

EF がこの Struct 内のデータを使用できるように、何らかの方法で Struct をクラスにラップすることは可能ですか? EF は自分の「コア」クラスの独自のプロキシを作成できるので、これもできるはずではありませんか?

.Net、C#、および EF に関する私の知識はかなり限られています。今年、学士号の割り当てのためにこの言語を学び始めたからです。

どんな助けでも大歓迎です。

編集:サンプルコードを追加しました。

Core には、TaxMode Struct を利用する多くのクラスがあり、この Struct にデータを格納します。

public class AcmeClass
{    
TaxMode Taxmode { get; set; }
}

構造体は次のとおりです。

public struct TaxMode
{
public string Name { get; set; }
public bool isTrue { get; set; }
}

これらのクラスに のプロパティを追加しようとすると、TaxModenull 非許容エラーが発生するだけです。

4

2 に答える 2

6

構造体はサポートされていません。

代わりに使用するclass必要があります。

更新しました

このLadislav Mrnkaの回答を見てください

于 2013-04-04T11:14:42.723 に答える
0

以下のように連載を検討したことはありますか?

[NotMapped]
public TaxMode? TaxMode { get; set; }
public string TaxModeJSON
{
    get
    {
        return TaxMode == null
                   ? null
                   : JsonConvert.SerializeObject(TaxMode);
    }
    set
    {
        if (string.IsNullOrWhiteSpace(value))
            TaxMode = null;
        else
            TaxMode = JsonConvert.DeserializeObject<TaxMode>(value);
    }
}

そのソリューションは、構造体を JSON として保存し、シリアル化を使用してデータベースとの間でデータを保存および取得します。

于 2021-03-16T12:24:40.400 に答える