LINQ TO SQL学习笔记(5)_SQLMetal和Mapping文件缺陷
2009-04-16 13:17 宗哥 阅读(725) 评论(1) 编辑 收藏 举报Mapping文件的缺陷
开发LINQ TO SQL,我个人倾向选择外部配置文件的方式进行开发,灵活,(这个也是.Net平台下的建议选择,如果你了解WCF,会更有体会)。 利用SQLMeatal开发Mapping文件的时候,在修改Association节的DeleteRule属性的时候,感觉是LING TO SQL的缺陷。
MSND:
NET Framework 类库
AssociationAttribute..::.DeleteRule 属性
更新:2007 年 11 月
获取或设置关联的删除行为。
命名空间: System.Data.Linq.Mapping
程序集: System.Data.Linq(在 System.Data.Linq.dll 中)
一个表示规则的字符串。
备注
如果设置为 null,则不会添加任何删除行为。例如,“CASCADE”会将“ON DELETE CASCADE”添加到外键关系
本例子以NorthWind为例子,按照这种说法,我在Order和Oder_Detail对象的关系设置如下:
<Association Name="FK_Order_Details_Orders" Member="OrderDetails" Storage="_OrderDetails" ThisKey="OrderID" OtherKey="OrderID" DeleteRule="ON DELETE CASCADE" />
这样即使我把数据库中Oders表和Order Details表之间关系解除,LINQ TO SQL运行时应该会探测这一关系,进行先删除Order Details相关的行,然后再删除Order。
然而事实是这样:
代码如下:
string xmlFilePath = @"D:\MyStudy\LINQToSQL\WebApplication1\MapNorthwind.Xml";
XmlMappingSource mapping = XmlMappingSource.FromXml(File.ReadAllText(xmlFilePath));
using (ObjNorthwind context = new ObjNorthwind(con, mapping))
{
var obj = context.Orders.Where(p => p.OrderID == 10250);
context.Orders.DeleteAllOnSubmit(obj);
context.SubmitChanges();
}
运行:
“/”应用程序中的服务器错误。
DELETE 语句与 REFERENCE 约束"FK_Order_Details_Orders"冲突。该冲突发生于数据库"Northwind",表"dbo.Order Details", column 'OrderID'。
语句已终止。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.SqlClient.SqlException: DELETE 语句与 REFERENCE 约束"FK_Order_Details_Orders"冲突。该冲突发生于数据库"Northwind",表"dbo.Order Details", column 'OrderID'。
语句已终止。
为什么LINQ TO SQL 不去探测这个级联关系,自动生成生成先删除[Order Details]表的管理子表哪 ?哪这个配置文件这个属性有什么用?
另外SQlMetal这个工具提供的InterFace太可怜了,看看MyGeneration郁闷!
本文代码下载:下载
声明: 本文作者:宗哥,宗子城
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明。 ...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述