0
我有3層應用程序。使用edmx和objectdatasource錯誤操作CRUD Idisposable
在Persistance層中,只是將'n'拖放到Entities.edmx文件中。
在Presentation層:
<asp:ObjectDataSource ID="ObjectDataSource_Tva" runat="server"
DeleteMethod="del_Tva" InsertMethod="Inst_Tva"
SelectMethod="Get_All_Tva"
TypeName="FaExped_BackEnd_WebApp_Business.Le_T.LeTVA_Entite_BL"
UpdateMethod="Updt_Tva">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Id" Type="Int32" />
<asp:Parameter Name="Libelle" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Id" Type="Int32" />
<asp:Parameter Name="Libelle" Type="String" />
</UpdateParameters>
</asp:ObjectDataSource>
和連接到這個ObjectDataSource的一個gridview。
在我的業務內容的邏輯層,當我使用它是這樣的:
public IEnumerable<T_TVA> Get_All_Tva()
{
FaExpedEntities oEntite_T = new FaExpedEntities();
var query = from o in oEntite_T.T_TVA select o;
IEnumerable<T_TVA> LesTva = query;
return LesTva;
}
它的工作原理,但是當我使用這樣的:
public IEnumerable<T_TVA> Get_All_Tva()
{
using (FaExpedEntities oEntite_T = new FaExpedEntities())
{
var query = from o in oEntite_T.T_TVA select o;
IEnumerable<T_TVA> LesTva = query;
return LesTva;
}
}
它不工作。它說ObjectContext
的實例已被刪除,不能用於需要連接的操作。
爲什麼?
使用「using
」語法失敗並且未使用「using
」的作品有什麼區別?
哪種方法更好?是否有「using
」?