C# 使用Nhibernate的单向多对一删除/更新策略
我在我的系统中加载了一个表文件,它在其他几个表中使用。因此,我的系统中曾经上传的文件保存在该表中(SQLServerFileStream) 因此,每个需要上传文件的类,我都有一个类似的映射:C# 使用Nhibernate的单向多对一删除/更新策略,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,我在我的系统中加载了一个表文件,它在其他几个表中使用。因此,我的系统中曾经上传的文件保存在该表中(SQLServerFileStream) 因此,每个需要上传文件的类,我都有一个类似的映射: m.ManyToOne(x => x.FileUploaded, map => { map.Column("File"); map.Class(typeof(FileUploaded));
m.ManyToOne(x => x.FileUploaded, map => {
map.Column("File");
map.Class(typeof(FileUploaded));
map.Cascade(Cascade.All | Cascade.DeleteOrphans);
});
所以,因为它是单向关系,我应该手动删除文件,对吗?
我将新文件设置为对象,然后明确删除FileUpload表中的旧表单:
var oldId = myObject.FileUploaded.Id;
myObject.FileUploaded = new FileUploaded(...)
session<FileUploaded>.Delete(oldId)
var oldId=myObject.fileupload.Id;
myObject.FileUpload=新上传的文件(…)
会话.删除(旧ID)
这样做对吗?还是我弄乱了映射?在
的情况下,唯一的方法是-如您所述。文件:
<many-to-one
name="PropertyName" (1)
column="column_name" (2)
class="ClassName" (3)
cascade="all|none|save-update|delete" (4)
...