Veritabanı modelimin üzerine bir modelim var ve Deposu'ndaki nesneleri eşleştiriyorum. Bununla birlikte, görünüşe göre doğrudan GetUserlerimde "yeni seçmemi" veya aşağıda belirtildiği gibi "factoryresult" seçeneğini seçmeme fark yaratıyor. Çalışma zamanında hatası alıyorum, CreateFromDbModel yönteminin sql (System.NotSupportedException) için bir çevirisi yok.SQL için linq ile fabrika sınıfları nasıl kullanılır?
Bunun bir yolu var mı? Bir şekilde tamir edebilir miyim?
fabrika yöntemini kullanmak isteyen nedeni herhangi yorumlar için ...
Teşekkür başka nesneler instanciate ve tek bir yerde 'haritalama kodu' tutmak isteyebilirsiniz yani Anders
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
};
}
Teşekkür Douglas ve Rossisdead, benim fabrika yöntemini çağırmadan önce listelemek için dönüştürme çalıştı, ancak sadece tüm linq dönmek zorunda yapmak var Veritabanından nesneler, tüm etki alanı modeli nesnelerini de oluşturmam gerekiyor - ve bunu gerektirmeyen bir yol bulmaya çalışıyordum ... Ayrıca, hizmet katmanımda filtreleme yapıyorum ve listeyi queryable. ... –
Merhaba Anders, Bkz. Yukarıdaki 2. – Douglas
Merhaba Douglas, Cevabınızı yanıt olarak işaretledim, ancak veritabanı linq nesnelerini veri katmanında veri katmanı nesnelerini hizmet katmanına göstereceği veri katmanında tutmayı umuyordum. –