【发布时间】:2012-02-15 22:53:13
【问题描述】:
我正在编写一个简单的电影数据库,它具有三层堆栈的服务层、数据访问层和 SQL DB。
我正在使用 LINQ to SQL 访问数据库并从数据库中的 Film 表中返回一个 Film。然后,这将作为 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;
}
【问题讨论】:
标签: wcf linq-to-sql