1

Linq to SQL であるオブジェクトを別のオブジェクトに割り当てる際に問題に直面しています。この例では:

Func<result, result> make = q => new result
{
    Id = q.Id,
    lName = q.lName,
    GroupId = q.GroupId,
    Age = (from tags in q.age where tags.Del == null && tags.lId == q.Id select age).ToEntitySet(),

};

p = (from q in dc.results
        where q.Id == Id.Value
        select make(q)).First();

新しいオブジェクトを作成して割り当てていますが、挿入に問題が発生するため、これを行いたくありません。新しいオブジェクトを作成せずに割り当てたいのですが、どうすれば可能ですか?

4

1 に答える 1

1

Jon Skeet と Marc Gravell には、 MiscUtilというライブラリがあります。内部MiscUtil.Reflection と呼ばれるクラスがあり、PropertyCopyそれはまさにあなたが説明したことを行います。.NET 3.5 でのみ機能します。

これは、SourceType のパブリック プロパティを実行することによって機能し、それらを名前で TargetType のパブリック プロパティと照合し、各プロパティをソースからターゲットに割り当てることができることを確認してから、これら 2 つのコピー関数を作成してキャッシュします。型 (そのため、毎回このリフレクションをすべて行う必要はありません)。私はそれを本番コードで使用しており、その良さを保証できます。

コード例については、この投稿をご覧ください。

于 2012-10-26T05:00:44.880 に答える