Я пишу простую базу данных фильмов, которая имеет трехуровневый стек служебного слоя, слоя доступа к данным и базы данных SQL.
Я использую LINQ to SQL для доступа к базе данных и возврата фильмаКинопленка в БД.Затем он будет возвращен как объект Film из DataContracts в слое обслуживания.
Я думал, что это будет работать нормально, но это привело к некоторому неудобному коду, который выглядит неправильно.Может кто-нибудь здравомыслие проверить это, пожалуйста?
Лучше ли сопоставлять каждый результат LINQ с его DataContract?
public static class DBConnection
{
private static RMDB_LINQDataContext _db;
static DBConnection()
{
_db = new RMDB_LINQDataContext();
}
public static RMDB.DTO.Film GetFilm(string name)
{
var LINQ_film = from film in _db.GetTable<Film>()
where film.name == name
select film;
if (LINQ_film.ToList().Count != 1)
{
// TODO - faultException
}
else
{
foreach (Film f in LINQ_film.ToList())
{
// Yuck
return new RMDB.DTO.Film(f.name,
f.releaseDate.GetValueOrDefault(), "foo", f.rating.GetValueOrDefault());
}
}
return null;
}