Linq to SQLとXMLのシリアル化を使用してで私のオブジェクトのプロパティの一部をと理解していないことがあります。C# - LinqからSQLへのXMLシリアル化の使用
私はテーブルを作成し、Linqを使ってすべてのクラスを生成します。しかし、私はいくつかのクラスプロパティをシリアル化して以来、データベーステーブルを作成するとき、私はこれらのプロパティを実際の型ではなくvarchar(XML文字列用)として定義します。したがって、自動生成されたクラスは実際のクラスではなく文字列型のプロパティで作成されます。
データベースからオブジェクトを挿入/フェッチする際にLinqに自動的にde/serializationを適用する方法はありますか? Linq自動生成クラスのシリアル化されたプロパティの元の型を保持しますか?
AクラスclassBPropタイプClassBのである例えば
注意。
class ClassA
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
private ClassB classBProp; // <-- This is something i'm serializing
public ClassB ClassBProp
{
get { return classBProp; }
set { classBProp = value; }
}
public ClassA()
{
classBProp = new ClassB();
}
}
クラス
用テーブルここClassBProp varchar型のものです。 LinqからSQLへと文字列プロパティを持つクラスが生成されます。
CREATE TABLE [dbo].[ClassA] (
[Id] INT NOT NULL,
[Name] VARCHAR (50) NULL,
[ClassBProp] VARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
ありがとう!私はこれを行うより適切な方法があると思った。しかし、それはそれが行われている方法だと私はそれで大丈夫です。ちょうど明確にする – moonlander
申し訳ありませんが、間違って投稿しました。 保存する際には、ClassCインスタンスを作成してからdataContext.ClassAs.InsertOnSubmit(classCInstance)を作成するだけです。 – moonlander
そして、私はシリアライズされたオブジェクトをミラーリングするために、デシリアライズされたオブジェクトのコレクション全体を作成する必要があります。または、すべてのオブジェクトにアクセスするときにdeserializeメソッドを適用します。それが正しい? – moonlander