小编Fla*_*air的帖子

Database.BeginTransaction vs Transactions.TransactionScope

System.Transactions.TransactionScope和EF6有什么区别Database.BeginTransaction

有人可以给出一个小例子,或者只是解释哪一个有明显区别?

PS:在我的项目中,我使用的是EF6.我已经阅读了文档,但它没有多大帮助.还查看了这些示例,但它们正在使用SqlConnection.BeginTransaction,现在MS已经Database.BeginTransaction在EF6中引入了这个新功能.

c# entity-framework transactions transactionscope entity-framework-6

77
推荐指数
2
解决办法
3万
查看次数

实体框架中的并发异常

拨打电话时SaveChanges/ SaveChangesAsync在实体框架(CF,C#),如果发生冲突的改变(例如,值一直上次读取啄更新),那么这两个异常DbUpdateConcurrencyExceptionOptimisticConcurrencyException应我赶上?

它们之间有什么区别?

c# entity-framework optimistic-concurrency entity-framework-6

21
推荐指数
1
解决办法
2万
查看次数

如何从C#内存中的文件创建ZipArchive?

是否有可能从内存中的文件创建ZipArchive(而不是实际上在磁盘上).

以下是用例:IEnumerable<HttpPostedFileBase>变量中接收多个文件.我想用所有这些文件压缩在一起ZipArchive.问题是ZipArchive只允许CreateEntryFromFile,它需要文件的路径,因为我只有内存中的文件.

问题: 有没有办法使用'stream'来创建'entry' ZipArchive,这样我就可以直接在zip中放入文件的内容?

我不想先保存文件,创建zip(从保存文件的路径),然后删除单个文件.

在这里,attachmentFilesIEnumerable<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)

.net c# zip zipfile

15
推荐指数
1
解决办法
2万
查看次数

实体框架中的并发管理

我正在尝试将我的代码从 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)

任何帮助,将不胜感激。对此没有任何线索。

c# entity-framework linq-to-sql

5
推荐指数
0
解决办法
315
查看次数

如何在C#中将列表列表转换为字典?

我有一个盒子列表(唯一的,带有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)
  • 方框1:第1项,第2项,......
  • 方框2:第4项,第5项,......
  • 方框3:......

鉴于商品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),所以我认为使用字典会是更好的选择吗?

c# dictionary

1
推荐指数
1
解决办法
1050
查看次数