Существует ли ApplyPropertyChanges с текстом данных? - PullRequest
3 голосов
/ 17 сентября 2009

Я видел пример использования среды entiyt, и он подал в суд на метод ApplyPropertyChanges, чтобы обновить сущность. Есть ли эквивалентный метод в простом старом Linq-To-SQL?

Мое приложение - приложение MVC asp.net, и когда я запускаю действие «Редактировать», я хочу просто вызвать sometihng, например:

originalObject = GetObject(id);
DataContext.ApplyPropertyChanges(originalObject, updatedObject);
DataContext.SubmitChanges();

Ответы [ 2 ]

2 голосов
/ 18 сентября 2009

Этот метод должен делать то, что вам нужно:

public static void Apply<T>(T originalValuesObj, T newValuesObj, params string[] ignore)
    where T : class
{
    // check for null arguments
    if (originalValuesObj == null || newValuesObj == null)
    {
        throw new ArgumentNullException(originalValuesObj == null ? "from" : "to");
    }

    // working variable(s)
    Type type = typeof(T);
    List<string> ignoreList = new List<string>(ignore ?? new string[] { });

    // iterate through each of the properties on the object
    foreach (PropertyInfo pi in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
    {
        // check whether we should be ignoring this property
        if (ignoreList.Contains(pi.Name))
        {
            continue;
        }

        // set the value in the original object
        object toValue = type.GetProperty(pi.Name).GetValue(newValuesObj, null);
        type.GetProperty(pi.Name).SetValue(originalValuesObj, toValue, null);
    }

    return;
}
1 голос
/ 17 сентября 2009
var theObject = (from table in dataContext.TheTable
                 where table.Id == theId
                 select table).Single();

theObject.Property = "New Value";
dataContext.SubmitChanges();

Вы можете попробовать использовать метод Attach, но он глючит. Пожалуйста, смотрите эту ссылку как ссылку: LINQ to SQL Update

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