System.Transactions.TransactionScope和EF6有什么区别Database.BeginTransaction?
有人可以给出一个小例子,或者只是解释哪一个有明显区别?
PS:在我的项目中,我使用的是EF6.我已经阅读了文档,但它没有多大帮助.还查看了这些示例,但它们正在使用SqlConnection.BeginTransaction,现在MS已经Database.BeginTransaction在EF6中引入了这个新功能.
c# entity-framework transactions transactionscope entity-framework-6
拨打电话时SaveChanges/ SaveChangesAsync在实体框架(CF,C#),如果发生冲突的改变(例如,值一直上次读取啄更新),那么这两个异常DbUpdateConcurrencyException或OptimisticConcurrencyException应我赶上?
它们之间有什么区别?
c# entity-framework optimistic-concurrency entity-framework-6
是否有可能从内存中的文件创建ZipArchive(而不是实际上在磁盘上).
以下是用例:
在IEnumerable<HttpPostedFileBase>变量中接收多个文件.我想用所有这些文件压缩在一起ZipArchive.问题是ZipArchive只允许CreateEntryFromFile,它需要文件的路径,因为我只有内存中的文件.
问题:
有没有办法使用'stream'来创建'entry' ZipArchive,这样我就可以直接在zip中放入文件的内容?
我不想先保存文件,创建zip(从保存文件的路径),然后删除单个文件.
在这里,attachmentFiles是IEnumerable<HttpPostedFileBase>
using (var ms = new MemoryStream())
{
using (var zipArchive = new ZipArchive(ms, ZipArchiveMode.Create, true))
{
foreach (var attachment in attachmentFiles)
{
zipArchive.CreateEntryFromFile(Path.GetFullPath(attachment.FileName), Path.GetFileName(attachment.FileName),
CompressionLevel.Fastest);
}
}
...
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的代码从 Linq-to-SQL 转换为 Entity Framework 6。我注意到 Entity Framework 中的并发管理选项非常“有限”。
问题:Entity Framework 中的ConflictMode.ContinueOnConflict和是什么ConflictMode.FailOnFirstConflict?我怎样才能尝试一次在数据库中保存所有更改并稍后收集所有冲突?据我所知,EF 中似乎没有直接的方法,还是我遗漏了什么?
更具体地说,我将如何将此代码更改为 EF6 样式?
try
{
storage.Accounts.InsertAllOnSubmit(newAccountsList);
storage.SubmitChanges(ConflictMode.ContinueOnConflict);
}
catch (ChangeConflictException)
{
var failedItems = storage.ChangeConflicts;
foreach (var failedItem in failedItems)
{
failedItem.Resolve(RefreshMode.KeepCurrentValues);
}
}
catch (KeyViolationException)
{
// Here I'm doing nothing
}
storage.SubmitChanges(ConflictMode.FailOnFirstConflict);
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。对此没有任何线索。
我有一个盒子列表(唯一的,带有id),每个盒子里都有一些物品(唯一的,有id).例:
list<box> boxes = new list<boxes>;
Run Code Online (Sandbox Code Playgroud)
哪里,
class box
{ ...
list<item> items = new list<item>;
...
}
Run Code Online (Sandbox Code Playgroud)
鉴于商品ID,我需要找到商品详情.为此我现在做这样的事情:
foreach (box b in boxes)
{
foreach (item i in b.items)
{
if (i.id == searchId)
return i;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是:如何将此列表数据结构转换为字典数据结构?
因为我有密钥(Id),所以我认为使用字典会是更好的选择吗?