1
我正在寫一個簡單的電影數據庫,它有三層服務層,數據訪問層和SQL數據庫。LINQ to SQL Datacontext映射到WCF DataContract
我使用LINQ to SQL來訪問數據庫並從數據庫中的電影表中返回一個電影。這將從服務層的DataContracts中作爲Film對象返回。
我認爲這會工作正常,但它導致了一些尷尬的代碼,看起來不正確。有人可以理智地檢查這個嗎?
將每個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;
}
假設'電影'(來自DB)意味着與RMDB.DTO.Film不同,並且如果可以複製一個類的每個實例到另一個的實例。我會說,是的,沒關係。 – Clemens
那麼你最終爲每個查詢寫一個POCO? – SkeetJon
我最終爲每個發送的不同消息寫了一個DataContract。一些操作採用相同的結構化消息 –