В моем веб-проекте ASP.NET я использую GridView
, чтобы показать содержимое таблицы базы данных SQL с помощью SQLDataSource
.GridView
дополнительно позволяет выбирать, редактировать, обновлять и удалять через CommandField, что очень удобно.
Мне также нужен OR Mapper для сопоставления содержимого базы данных с экземплярами объектов.Для этого я выбрал NHibernate
.
NHibernate
и GridView
, похоже, работают только независимо друг от друга.Если я удаляю или обновляю запись с GridView
, я получаю следующее исключение:
[ArgumentException: No mapping exists from DbType Object to a known SqlDbType.]
System.Data.SqlServerCe.SqlCeType.FromDbType(DbType type) +417
System.Data.SqlServerCe.SqlCeParameter.set_DbType(DbType value) +71
System.Web.UI.WebControls.SqlDataSourceView.InitializeParameters(DbCommand command, ParameterCollection parameters, IDictionary exclusionList) +525
System.Web.UI.WebControls.SqlDataSourceView.ExecuteDelete(IDictionary keys, IDictionary oldValues) +230
System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +92
System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +946
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +1161
System.Web.UI.WebControls.GridView.RaisePostBackEvent(String eventArgument) +210
System.Web.UI.WebControls.GridView.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +176
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563
Возможно ли вообще с NHibernate
изменить базу данных из другого места и позволить NHibernate распознатьизменения и применить их к экземплярам объекта?