- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
public class TestBL
{
public static void AddFolder(string folderName)
{
using (var ts = new TransactionScope())
{
using (var dc = new TestDataContext())
{
var folder = new Folder { FolderName = folderName };
dc.Folders.InsertOnSubmit(folder);
dc.SubmitChanges();
AddFile("test1.xyz", folder.Id);
AddFile("test2.xyz", folder.Id);
AddFile("test3.xyz", folder.Id);
dc.SubmitChanges();
}
ts.Complete();
}
}
public static void AddFile(string filename, int folderId)
{
using (var dc = new TestDataContext())
{
dc.Files.InsertOnSubmit(
new File { Filename = filename, FolderId = folderId });
dc.SubmitChanges();
}
}
}
这是嵌套 DataContext 的示例(未测试)。当 TransactionScope 添加到我们的小实验(如上所示)时,问题就开始了。 AddFolder 函数中的第一个 AddFile 会将事务升级到 DTC(这无论如何都是不好的),因为 AddFile 初始化新的 DataContext,从而打开到数据库的第二个连接。
最佳答案
毫无疑问,应尽可能避免升级为 DTC。当我第一次阅读您的问题时,我的直觉告诉您您的事务不会升级为 DTC,因为您在两个数据上下文中使用相同的连接字符串。然而,根据this article ,我错了。
在 confusion 中你并不孤单关于数据上下文的最佳实践。如果你在网上搜索这个,到处都有答案。在您的示例中,您可以将数据上下文传递给 AddFile 方法。或者,您可以将此数据访问重构为一个类,该类维护数据上下文的生命周期,直到文件夹和文件全部保存。 Rick Strahl 发布an article关于几种技术。
不过,我所看到的有关 LINQ to SQL 的答案似乎都不令人满意。您是否考虑过使用 ORM 来避免管理您的数据层?我用过NetTiers取得了巨大的成功,但我听到了关于 PLINQO 的好消息.这些都需要 CodeSmith , 但有 many alternatives .
关于c# - 如何处理 BL 中的嵌套数据上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351787/
'bl' 或带有链接指令的分支几乎总是变成 0xebfffffe 但是,处理器和 GNU binutils objdump 以某种方式知道分支位置: 00000000 : 0: e1a0c0
我对一件事感到困惑。我在我以前的 mvc 应用程序中使用了存储库模式(不是通用的),并且我曾经在那里包含某种业务逻辑。此刻我读到了服务层模式,其中应该包含 BL。但是现在我不知道是否有更多的抽象和额外
你能解释一下下面的汇编代码是如何工作的吗? xor ebx, ebx; mov bl, byte ptr[ecx]; cmp ebx, 0; 我不明白为什么你将字节移动到 bl 然后比较 ebx 而不
public class TestBL { public static void AddFolder(string folderName) { using (var t
我正在学习 ARM 汇编,但我现在陷入困境。 我知道链接寄存器,如果我没记错的话,它会保存函数调用完成时要返回的地址。 所以如果我们有类似的东西(取自 ARM 文档): 0 | here 1 |
我正在重构我们的 BI 层以使我们的代码更加“松散耦合”,我很想听听你们认为可能会做出哪些有趣的改进? 目前,我们的 API 是这样的:- // Fetch a collection of objec
这里有一个很棒的 d3 极地时钟示例 - http://bl.ocks.org/mbostock/1096355 . 我有几个关于幕后情况的问题,如果有人愿意花点时间解释一下。 1. d3.trans
已解决:电源循环修复了它。一定是上部闪存 block 的电气问题导致硬件执行单元从闪存中读取错误值 我正在 assembly 步进,但发生了一些奇怪的事情。 我有两个独立的闪存 block ,它们都包
我计划将验证逻辑放在业务逻辑层中,其中可能包括: [Required], [Length > 0] 等。使用数据注释。但是,我还需要一个验证规则,在将 DAL 插入数据库之前检查对象是否重复,例如[I
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 5 年前。 Improve
我一点也不是 javascript、jquery、json 专家。 我的目标是使用来自 bl.ock.us 的力导向图示例创建一组数据的图表。 . 1)我写了一个python脚本来生成json格式。
我最近收到一个项目,其中包含多个没有 MVC 结构的 Web 应用程序。对于初学者,我创建了一个包含主要业务逻辑的库 (DLL)。问题出在缓存上——如果我使用当前的 Web 上下文缓存对象,那么我最终
这是我的困境,我知道在 JSF 中访问器方法会被多次调用,因此我知道不要将昂贵的业务逻辑(如数据库访问)放在访问器方法中。如果我绝对必须将业务逻辑放入我的访问器中怎么办。在这种情况下我该怎么办?以下是
https://gist.github.com/dukevis/9039575 我有代码,当我在编辑时通过本地主机查看它时,没有任何错误并且显示正常。然而,当我将其上传到 gist 并通过 bl.oc
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 6 年前。 Improv
这个问题已经有答案了: execve shellcode linux segmentation fault (1 个回答) 已关闭 7 年前。 知道为什么这会导致段错误吗? mov 字节 [esi +
我有一个带有 API、BL 和 DAL 层的 Node.js 应用程序,我想验证用户输入。 目前我正在 BL 函数的开头进行验证,因此它兼作用户输入验证器和内部应用程序验证器(来自其他类的调用) 我担
This我的例子是来自example1和示例2(bl.ocks.org/larskotthoff/7022289)。 我的index.html与example2相同,但我想合并example1的 Vi
我试图更好地理解为什么在调用 BL 指令之前推送 LR。我知道 BL 指令将分支到另一个子例程,然后将 PC 恢复到 BL 调用之后的指令地址,但为什么 LR 在 BL 被称为?我已经编写了下面用于阶
我正在尝试构建 iOS 应用程序,但在 Debug模式下遇到错误。 ld: b/bl/blx thumb2 branch out of range (17330692 max is +/-16MB):
我是一名优秀的程序员,十分优秀!