私はLinq to SQLを使用してデータベース情報を返すことを検討しているWCF/REST Webサービスを持っています。REST/WCFサービスでLINQからSQLにデータセットを返す
それは例えば、表に対して基本的なクエリを実行すると行を返すために十分に簡単です:
[WebGet(UriTemplate = "")]
public List<User> GetUsers()
{
List<User> ret = new List<User>(); ;
using (MyDataContext context = new MyDataContext())
{
var userResults = from u in context.Users select u;
ret = userResults.ToList<User>();
}
return ret;
}
しかし、私は複数のテーブルからデータを返すようにしたい場合は何かそれはまさに、テーブルのスキーマと一致しません?
var userResults = from u in context.Users
select new { u.userID, u.userName, u.userType,
u.Person.personFirstname, u.Person.personLastname };
明らかに結果の行セットは、「ユーザー」スキーマに準拠していないので、私はちょうどリストに変換することはできません:私は、たとえば、このクエリから結果を返す方法を見つけ出すことはできませんユーザーオブジェクトの
オブジェクトモデルで結果セットに関連する新しいエンティティを作成しようとしましたが、変換を実行したくありません。
私には何が欠けていますか?
編集:関連する質問:ストアドプロシージャから返される結果はどうですか?同じ問題、サービスを介して返品するためにそれらをパッケージ化する最良の方法は何ですか?
これはEntity Frameworkであり、Linq To SQLとまったく同じではありません。私は可能な限りEntity Frameworkの使用を避けようとしています。 – BDW
ああそうです。 m4tt1musのように、匿名のクラスの代わりに具体的なクラスを作成することができます。 –
しかし、私はEntity Frameworkを使っています。私は複雑な型が格納されたprocsでどのように動作するかを知っていますが、それは問題ではありません。どのように私は複合型に上記の私は持っているSQLクエリにlinqをマップするのですか?私が努力しているものは何も働いていません。 – BDW