Проблема, с которой я сейчас сталкиваюсь, заключается в следующем:
У меня есть приложение Gridview в моем приложении Silverlight 4, и оно заполняется данными.Однако данные являются первой записью в коллекции объектов, которая возвращается из базы данных и повторяется x раз в виде сетки.
Когда я ставлю точку останова на DAL и доменную службу, возвращаемые данные верны, то есть возвращают все отдельные объекты в коллекции.
Это не проблема, которая проявляется, если я связываю данные с компонентом не Silverlight.
Теперь для некоторого кода, вот как я связываю данные в приложении Silverlight:
private void BindData()
{
_ctx = new ManufacturingDomainContext();
_loadOp = _ctx.Load( _ctx.GetWorkCellLoadGraphDataByIdQuery( "Test", DateTime.Today, DateTime.Today.AddDays( 14 ) ), TestCallBack, null );
}
private void TestCallBack(LoadOperation<WorkCellLoadGraphData> obj)
{
CustomerGrid.ItemsSource = _loadOp.Entities;
}
Код службы домена:
public IEnumerable<WorkCellLoadGraphData> GetWorkCellLoadGraphDataById(string workCellId, DateTime startDate, DateTime endDate)
{
WorkCellLoadGraphData data = new WorkCellLoadGraphData();
var result = ManufacturingDao.Instance.GetWorkCellLoadGraphDataByIdA(workCellId, startDate, endDate);
return result;
}
Инаконец, код DAL:
общедоступный IList GetWorkCellLoadGraphDataByIdA (string workCellId, DateTime startDate, DateTime endDate) {IList results = new List ();
using (var session = this.GetSession())
{
var criteria = session.CreateCriteria(typeof(WorkCellLoadGraphData));
criteria.SetProjection(
Projections.ProjectionList()
.Add(Projections.Property(WorkCellLoadGraphData.WorkCellIdPropertyName), "WorkCellId")
.Add(Projections.Property(WorkCellLoadGraphData.FromTimePropertyName), "FromTime")
.Add(Projections.Property(WorkCellLoadGraphData.DurationPropertyName), "DurationInMinutes")
);
criteria.Add(Restrictions.InsensitiveLike(WorkCellLoadGraphData.WorkCellIdPropertyName, workCellId));
criteria.Add(Restrictions.Between(WorkCellLoadGraphData.FromTimePropertyName, startDate, endDate));
criteria.SetResultTransformer(new AliasToBeanResultTransformer(typeof(WorkCellLoadGraphData)));
results = criteria.List<WorkCellLoadGraphData>();
}
foreach (var x in results)
Logger.Info(x.ToString());
return results;
}
как новичок во всех технологияхупоминается в теме, я не уверен, в какой области может быть проблема.Я пытался установить точки останова, но с асинхронными вызовами не так просто следовать.
Кроме того, я должен добавить, что обычно я буду вызывать код DAL из моих классов POCO, а не полностью обходить POCO.
Кто-нибудь может помочь?
Дэвид