GetModifiedMembers возвращает пустой массив - PullRequest
1 голос
/ 18 ноября 2008

Код ниже всегда возвращает пустой массив из GetModifiedMembers(object) но dx.GetChangeSet().Updates.Contains( foo ) возвращает истину.

DataContext dx = new DataContext( string.Empty );
MockLinqDataObject foo = new MockLinqDataObject();
dx.GetTable( foo.GetType() ).Attach( foo );

foo.PK = Guid.NewGuid();

// always returns empty array
ModifiedMemberInfo[] arr_Result = dx.GetTable( foo.GetType() ).GetModifiedMembers( foo );
bool isOk = ( arr_Result.Length == 1 );
return isOk;

Кто-нибудь знает, что тут не так?

Заранее спасибо?

Ответы [ 2 ]

0 голосов
/ 13 октября 2014

Если вы проверите длину после SubmitChanges, вы получите длину 0, потому что изменения в контексте данных очищаются после отправки изменений.

0 голосов
/ 16 декабря 2008

Я знаю, что это не ответ, но я не смог повторить вашу проблему.

Используя следующий код в консольном приложении, я получаю массив длиной 1:

testdbDataContext db = new testdbDataContext();
Address a = new Address();
db.GetTable(a.GetType()).Attach(a);
a.Address1 = "simple change";

var result = db.GetTable(a.GetType()).GetModifiedMembers(a);
Console.WriteLine(result.Length);
Console.ReadKey();

Вывод на консоль 1.

Попробуйте изменить другое свойство объекта foo и посмотрите, отличается ли ваш результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...