3
2つの同一のLinqテーブルオブジェクトを比較したいのですが、いくつかのプロパティを省略しなければなりません。 EntitySet(LinqTableにはさまざまな型があります)、プロパティがその型(EntitySet)であるかどうかを確認するにはどうすればよいですか?2つのLinqオブジェクトを比較する
なしコードについて申し訳ありませんが、私は携帯電話からの書き込み:)それが必要になる場合、私はいくつかのコードを追加します。)
EDIT:
:私は最終的に以下のコードでその問題を解決
internal static void AssertIsEqualTo<T>(this T value, T comparedValue, List<string> fieldsToAvoid)
{
Type type = typeof(T);
PropertyInfo[] properties = type.GetProperties();
if (fieldsToAvoid == null)
{
fieldsToAvoid = new List<string>();
}
for (int i = 0; i < properties.Length; i++)
{
var expectedPropertyValue = properties[i].GetValue(value, null);
var actualPropertyValue = properties[i].GetValue(comparedValue, null);
if (!fieldsToAvoid.Contains(properties[i].Name))
{
if (properties[i].PropertyType.Name != typeof(System.Data.Linq.EntitySet<object>).Name)
{
Assert.AreEqual(expectedPropertyValue, actualPropertyValue, "In {0} object {1} is not equal.", type.ToString(), properties[i].Name);
}
}
}
}
TypeオブジェクトのNameプロパティには、「EntitySet '1」という1つのパラメータを持つEntitySetオブジェクトを意味するものがあります。
誰かがそれを解決する良い方法を知っているかもしれませんか?