Re[2]: Вопрос про LINQ to SQL
От: ili Россия  
Дата: 23.06.08 05:38
Оценка: :)
Здравствуйте, Alexey M., Вы писали:

AM>А есть какие либо преимущества такого решения перед DataTable?


скорость доступа по ключу =)
Вопрос про LINQ to SQL
От: andrey007  
Дата: 20.06.08 04:53
Оценка:
Как я понимаю в LINQ to SQL существует возможность связать свойства класса с колонками таблицы в SQL.
А существует ли возможность заполнять не свойства класса, а другой объект, например, Dictionary
по принципу <Имя колонки, Значение>???
Re: Вопрос про LINQ to SQL
От: Muxa  
Дата: 20.06.08 11:50
Оценка:
ручками разве что
Re: Вопрос про LINQ to SQL
От: Alexey M.  
Дата: 21.06.08 19:47
Оценка:
Здравствуйте, andrey007, Вы писали:

A>Как я понимаю в LINQ to SQL существует возможность связать свойства класса с колонками таблицы в SQL.

A>А существует ли возможность заполнять не свойства класса, а другой объект, например, Dictionary
A>по принципу <Имя колонки, Значение>???

А есть какие либо преимущества такого решения перед DataTable?
Re: Вопрос про LINQ to SQL
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.06.08 06:57
Оценка:
Здравствуйте, andrey007, Вы писали:

A>Как я понимаю в LINQ to SQL существует возможность связать свойства класса с колонками таблицы в SQL.

A>А существует ли возможность заполнять не свойства класса, а другой объект, например, Dictionary
A>по принципу <Имя колонки, Значение>???

Можно в результат запроса (или подзапроса) преобразовать в хэш-таблицу.

var source = new[] { new { Key="один", Val=1 }, new { Key="два", Val=2 }, new { Key="три", Val=3 } };

var dic = (from elem in source where elem.Key.Length == 3 select elem).ToDictionary(x => x.Key, x => x.Val);

foreach (var item in dic)
    Console.WriteLine(item);
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Вопрос про LINQ to SQL
От: Muxa  
Дата: 23.06.08 11:26
Оценка:
ili>скорость доступа по ключу =)

а доступ напрямую к свойству разве медленнее?
obj.PropName vs dictObj["PropName"]
Re: Вопрос про LINQ to SQL
От: Muxa  
Дата: 23.06.08 11:28
Оценка:
легко, только Linq тут совсем не причем.
using System;
using System.Collections.Generic;
using System.Reflection;

namespace LinqToDictionary {
    class ClassA {
        public int IntProperty { get; set; }
        public string StringProperty { get; set; }
    }

    class Program {
        static void Main() {
            ClassA a = new ClassA { IntProperty = 1, StringProperty = "One" };
            Dictionary<string, object> dict = GetDictFor(a);
            foreach (KeyValuePair<string, object> pair in dict)
                Console.WriteLine(pair.ToString());
        }

        private static Dictionary<string, object> GetDictFor(object a) {
            Dictionary<string, object> dictionary = new Dictionary<string, object>();
            foreach (PropertyInfo propertyInfo in a.GetType().GetProperties())
                dictionary.Add(propertyInfo.Name, propertyInfo.GetValue(a, null));
            return dictionary;
        }
    }
}
Re[2]: Вопрос про LINQ to SQL
От: Lloyd Россия  
Дата: 23.06.08 18:54
Оценка:
Здравствуйте, Muxa, Вы писали:

M>легко, только Linq тут совсем не причем.


Угу. А приведенный код — совсем не причем в вопросу
... << RSDN@Home 1.2.0 alpha rev. 786>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.