Stajım için arka planda bir veritabanı ile iletişim kuran bir program oluşturuyorum. Program, MVC (Model-Görünüm-Denetleyici) yolunda katmanlandırılmıştır.Nesne Yönlendirmeli Linq2Sql sorgu sınıfı
Görünüm İçin Verilere DataAccesLayer (DAL) adını verdiğim bir şeyle erişmek istiyorum. Bu görünüm çok az bilgiye sahip olduğundan, aramak istediğim sorgu için bir kimlik iletilmesini istiyorum. Çağrı DAL içinde yapılacaktır. Sonra ID ile sorguyu geri döndürmek için sorguları tutan bir sınıf sormak istiyorum, sonra DAL içinde yürütmek. Görselleştirmek için resim.
Şimdi sahip sorun benim Oku işlevinde sorguyu yürütmek için nasıl.
public class DataAccesLayer
{
private Queries queryloader;
private RoadsoftDigitacV8DataContext db;
public DataAccesLayer()
{
queryloader = new Queries();
db = new RoadsoftDigitacV8DataContext();
}
public List Read(int ID)
{
IQueryable query;
query = queryloader.GetQuery(ID);
return query.ToList();
}
}
Sorgular sınıf için Kod:
public class Queries
{
private Dictionary<int, IQueryable object> queryDict;
private ErrorLoggerWinLog logger;
public Queries()
{
logger = ErrorLoggerWinLog.Instance();
queryDict = new Dictionary<int, IQueryable object>();
queryDict.Add(1, from d in db.Drivers
select d);
}
public object GetQuery(int ID)
{
var query;
if(queryDict.TryGetValue(ID, out query) == false)
{
logger.WriteLine("Queries", "Could not find the query specified", ErrorLoggerWinLog.loggerlevel.Error);
}
return query;
}
}
merak ediyorum, bu mümkün DAL için kod şudur? Şu an işe yaramıyor. Muhtemelen bir şeyi unutuyorum ya da önemli bir şeyi kaçırıyorum. Bu türden bir kurulumla ilgili herhangi bir deneyimi var mı, yoksa tamamen farklı bir çözüme mi bakmalı?
Düzenleme: Şu anda bu, sorguyu çalıştırıyor gibi görünmüyor. Datacontext buna rağmen doldurulur, bu programın farklı bir bölümünde yapılır.
Edit2: Şu anda İyon Kalıbına bakıyorum, bu harika bir öğrenme deneyimi, herkese yorum ve anwser için zaman ayırdığınız için teşekkür ederiz!
İyi çaba, Resim için +1 = – Sean
Ancak ..... Tam olarak ne çalışmıyor? – Sean
Yine de db context nesnesini gerçek veritabanına bağlamanız gerekir. Şimdi sahip olduğunuz gibi, bağlantısız bir bağlam var. Ardından, sorguyu aslında bağlam üzerinden yürütmeniz gerekir. – ThaMe90