Как передавать данные при использовании LINQ в качестве DAL? - PullRequest
1 голос
/ 11 ноября 2009

Я создаю свой первый проект на основе linq. DAL состоит из классов LinqToSQL. А логический уровень - это просто еще одна DLL для простоты.

Я хотел бы узнать, как передать объект var (результат запроса select) из слоя входа в слой представления?

Должен ли я написать свой собственный слой DTO между слоем входа в систему и уровнем представления для передачи из BLL в уровень представления или я должен сериализовать данные как XML?

Спасибо, Викас

Ответы [ 2 ]

0 голосов
/ 11 ноября 2009

Загрузите каждый результат строки в объект, поместите каждый объект в коллекцию и затем передайте коллекцию из DAL в BOL, где она может быть обработана вашими бизнес-правилами, прежде чем коллекция будет передана в презентацию.

0 голосов
/ 11 ноября 2009

Я бы избегал сериализации, когда у вас есть возможность просто передать данные как строго типизированный класс. И это то, что вы должны будете сделать. Я верю, что когда выйдет .Net 4.0, вы сможете передавать переменные, но до тех пор попробуйте вернуть ваш запрос в виде IEnumerable вместо var, если вам нужно передать его другой функции.

IE:

public class myClass
{
    public int RecordID { get; set; }
    public string Field1 { get; set; }
}

public void GetDataAndSendToOtherLayer()
{
    using (DBDataContext db = new DBDataContext)
    {
        IEnumerable<myClass> Recs =
            from tab in db.table
            select new myClass
            {
                RecordID = tab.RecordID,
                Field1 = tab.Field1
            };

        OtherLayer.DoSomething(Recs);
    }
}
...