私は現在、データの取得にLINQ to SQLを使用していて、カスタムオブジェクトにLINQクエリを設定しています。私のカスタムオブジェクトは、datacontractのIsReference = true属性を使用する基本クラスから継承します。私は私のオブジェクト階層をとり、それをXMLにシリアライズしてからサービスに送ります。LINQ、カスタムオブジェクト、シリアル化とオブジェクト参照
しかし、これはXMLで起こっていることは、オブジェクトデータがファイル全体のオブジェクトに対して繰り返されるということです。私がXMLファイルで望んでいるのは、オブジェクトが同じタイプの別のオブジェクトと同じデータを持っている場合(オブジェクトツリー内のどこに置かれているかに関係なく)、最初のオブジェクトへの参照を持たせたいと思います。データを繰り返さない。
LINQ DataContextレベルで処理できるかどうか、またはオブジェクトごとにハッシュテーブルのようなものを使用してそのレベルでそれを追跡する必要がある場合、独自のカスタムオブジェクトをインスタンス化しているかどうかはわかりませんタイプ。私のプログラムでは、私は別のクラスのメソッドなどの項目の同じ種類の別のリストを作成していると私は結果の一部があることを期待に
その後class Section1 {
public static MyClass GetClasses(int Id)
{
using (DataContext dataContext = new DataContext())
{
var result = from items in dataContext.Table
where item.Id == Id
select items;
foreach (var entry in result)
{
MyClass myClass = new MyClass();
myclass.Id = entry.Id;
}
}
return myclass;
}
}
:ここ
は私のクラスがどのように見えるかです
Class2 {
public static MyClass GetItemClasses(int ItemId)
{
MyClass myClass = new MyClass();
using (DataContext dataContext = new DataContext())
{
var result = from items in dataContext.Table
where item.Id == ItemId
select items;
foreach (var entry in result)
{
MyClass myClass = new MyClass();
myclass.Id = entry.Id;
}
}
return myclass;
}
}
これを実行すると、私が次にシリアル化したすべてのオブジェクトが正常に生成されます。繰り返されるそれらのオブジェクトのXMLファイル内の参照をどのように持つことができるかに関するアイデアはありますか?
ありがとうございます。