私はかなり複雑なSQL
データベースでウェブサイトを構築しています。複数のプリミティブフィールド(すべて正常に機能します)と複数のを保持
するクラスを作成しました。私のソリューションのフォルダの下にも定義されています。また、の単一のインスタンスを保持します。次に、を継承するクラスを作成しました。Query
List<SomeType>
SomeType
Models
SomeType
QueryDBContext
DbContext
Generate
文字列を受け取り、完全に形成されたQuery
インスタンスを作成する関数があります。すぐに送信すると、View
問題なく動作します。しかし、それを自分のに格納するとDB
、プリミティブ値のみが保持され、参照型(Lists<SomeType>
との両方SomeType
)はになりnull
ます。
問題は、EFが参照型をサポートしていないことだと思います。あるいは、この場合に何か特別なものが必要なのでしょうか。
これがQuery
public class Query
{
[Key]
public int id { get; set; }
public SomeType Base { get; set; }
public List<SomeType> Derived { get; set; }
//more of these
public string SmallGraphImage { get; set; }
public string MediumGraphImage { get; set; }
public string LargeGraphImage { get; set; }
}
public class QueriesDBContext : DbContext
{
public DbSet<Query> Queries { get; set; }
}
これがSomeType
public class SomeType
{
[Key]
public int id { get; set; }
public string ExpandedOutForm { get; set; }
public string ExpandedInForm { get; set; }
//more strings
}
注:データベースはプリミティブに対して正常に機能します。開発の目的で、Controller
変更ごとにデータベースを削除して再構築するを作成しました。また、に置き換えList
てみましたIList
。
EFが参照型をサポートしていない場合、どうすればよいですか?動作しstructs
ますか?Lists
データベースエントリ内に保存するにはどうすればよいですか?(ええ、IDを使用して別のテーブルに保存できますが、EFにはこれに対するより洗練されたソリューションがあると思います)