データベースモデルの上にモデルがあり、そのオブジェクトをリポジトリにマップします。sql用にlinqでfactoryクラスを使用する方法は?
しかし、私のGetUsersで直接「新規」を選択しても、下で実装するように「select factoryreult」にするかは明らかに違いがあります。実行時にCreateFromDbModelメソッドにsql(System.NotSupportedException)への変換がないというエラーが表示されます。
方法はありますか?どういうわけか私はそれを修正することはできますか?
ファクトリメソッドを使用したい理由は、私は他の場所でオブジェクトをインスタンス化し、一つの場所に「マッピングコード」を維持したいかもしれないということです...任意のコメント
おかげで、 アンダース
public IQueryable<User> GetUsers(bool includeTeams)
{
return from u in _db.sc_Players
where (includeTeams || (!u.aspnet_User.sc_Player.IsTeam))
select UserFactory2.CreateFromDbModel(u);
}
public static User CreateFromDbModel(sc_Player player)
{
return new User
{
Id = player.sc_PlayerID,
FirstName = player.FirstName.Trim(),
LastName = player.LastName.Trim(),
PresentationName = player.FirstName.Trim() + " " + player.LastName.Trim(),
LoginName = player.aspnet_User.LoweredUserName,
IsTeam = player.IsTeam,
Email = player.aspnet_User.aspnet_Membership.Email,
Password = player.aspnet_User.aspnet_Membership.Password
};
}
おかげダグラスとRossisdead、 私は私のファクトリメソッドを呼び出す前に、リストに変換する試みましたが、私はすべてのLINQを返す必要がないだけでなく、データベースからオブジェクトを取得するには、私はすべてのドメインモデルオブジェクトも構築しなければなりません。そして、私はそれを必要としない方法を見つけようとしていました...さらに、私はサービスレイヤーでフィルタリングを行い、リストをクエリ可能。 ... –
こんにちはAnders、 上記の編集2を参照してください。 – Douglas
こんにちはDouglas、 答えとして返信をマークしますが、データレイヤオブジェクトをサービスレイヤに公開するデータレイヤにデータベースのlinqオブジェクトを保持したいと考えていました。 –