- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些代码可以在使用 EF5 的应用程序中软删除记录。我的“可删除”类实现了 ISoftDelete,它只是说实现者必须有一个 bool Deleted 属性。
当我的用户点击删除时,我调用 DbContext..Remove(entity)
这会将绑定(bind)到父实体的任何属性清除为 null(如果我的父实体有我的可删除实体的集合!)。
在我的 DbContext 中,我覆盖了 SaveChanges 方法以查找任何已删除的实体,如果它们实现了我的 ISoftDelete 接口(interface),我将状态设置为已修改而不是已删除,并将其 Deleted 属性设置为 true 以标记为已删除。我的问题是持有对 parent 的引用的属性为空。
调查似乎指向 ApplyOriginalValues,但由于我的值不是公共(public)属性,而是由于我是集合中的子项而为我创建的,因此我正在努力实现。你能帮忙吗?
最佳答案
我认为如果您使用其他方法可能会更容易。使用存储库和工作单元 fascade 模式而不是直接调用 EF 上下文,意味着您可以更轻松地控制操作。工作单元类控制保存更改操作。 存储库类控制 CRUD、GetLists 等。
public class RepositoryBase<TPoco> : IRespository {
public RepositoryBase(DbContext context) { Context = context; }
//... CRUD methods....
public bool Remove(TPoco poco) {
if (typeof ISoftDelete).IsAssignableFrom(Typeof(TPoco)){
// proceed with modify actions
}
else {
Context.Set<TPoco>().Remove(poco);
}
}
}
public class Luw : ILuw{
// ....
public IRepositoryBase<TPoco> GetRepository<TPoco>() where TPoco : ???{
return (new RepositoryFactory<TPoco>().GetRepository(Context));
}
public MuCustomResult Commit() {
.... any special context manipulation before save
myCustomResultRecordsAffected = Context.SaveChanges();
}
}
关于entity-framework - Entity Framework 5 中的 "soft deleting",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18520470/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
最近我看到这篇文章,它对 Jenkins 进行 GC 调优,其中讨论了这个参数:-XX:SoftRefLRUPolicyMSPerMB https://jenkins.io/blog/2016/11/
我在跑 means2来自 scipy,虽然我收到一条错误消息: /usr/lib/python2.7/dist-packages/scipy/cluster/vq.py:600: UserWarnin
环境为ubuntu 16.04 64bit,go版本go1.12 linux/amd64 我正在尝试将我的 golang 项目从 gopath 切换到 gomodule。我项目导入的包之一是使用cgo
urplus(多余) wave(浪) Get lost (迷路) nature(本性) Rely on 依赖 Soft cancer (软癌) Devour.(吞噬) ink into
我正在尝试安装 openal-soft在 Ubuntu Focal 上,但没有运气。 这是我要安装的软件包: https://packages.ubuntu.com/source/focal/open
ln -s /dir1/file1 /dir2/file1 我想在目标 dir1 中创建一个与 dir2 中的源文件名相同的软链接(soft link) 如何在目标路径中不输入 file1 名称的
我目前正在研究调试器。我读到调试器有软件断点(apparently 这些是最常用的断点)。这些通过将操作码的第一个字节替换为 Int 3(操作码 0xcc)来工作。 我已经读过程序的文本(/code)
根据 keyword module 的文档,Python 3.9 中添加了两个新成员: issoftkeyword softkwlist 然而,他们的文档并未透露任何有关其目的的信息。在What's
我正在使用 OpenAL-Soft对于一个项目,现在我正在尝试决定是否需要实现 OpenAL 源池。 源池有些麻烦(我需要编写代码来“分配”源,以及以某种方式决定何时可以“释放”它们),但如果 Ope
当我说“软”事务时,我的意思是不涉及某些数据库中的持久性,而只是逻辑对象修改。故事是这样的。 普通的 JAVA 应用程序,没有框架,可能有很多线程。 对象Ob在其单独的线程中启动doSomething
我有几百个由不同工具生成的数据库,并存档在一个中心区域。所有文件都以压缩格式存储。我尝试通过在 var 目录中创建软链接(soft link)将这些数据库导入 mysql 服务器,但我在 mysql
在 Linux 中,我如何找到链接到特定目标目录或文件的所有软链接(soft link)? 最佳答案 您可以使用find 的-lname 参数: find . -lname linktarget 关于
创建了名为D1的目录,并在同一目录中创建了文件f1 创建了一个名为 D2 的空目录,为 d1(目录)中的 f1(文件)创建了软链接(soft link)并将其存储在 d2(目录)中。 我使用的命令:l
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我可以将软链接(soft link)存储在apache文档根目录(/var/www/html)下并将实际文件保留在文档根目录之外的另一个文件系统中吗?我的硬盘中有 4 个文件系统:3 个 NTFS 和
Linux 命令:我正在使用以下命令,该命令返回目录中的最新文件名。 ls -Art | tail -n 1 当我运行此命令时,它会返回最新更改的文件,这实际上是软链接(soft link),我想忽略
红帽 5.5gcc 版本 4.1.2 我有一个名为 lib 的目录,在该目录中我有我们在使用客户 API 时从客户那里获得的所有共享库(大约 30 个)。我们与此 API 链接。 目录结构: /usr
我有一个 WPF 应用程序使用 INotifyPropertyChanged 来指示属性更新。我喜欢它的一点是,它使您能够在不调用所有 setter 代码的情况下发出属性更改信号。当您有两个相互更新的
我在系统的三个不同路径中有相同的共享库。假设路径是 PATH1、PATH2 和 PATH3。 共享库名称是 libmylib.so 现在,如果我在 PATH1 中用损坏的软链接(soft link)替
我是一名优秀的程序员,十分优秀!