Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Nhibernate的单向多对一删除/更新策略_C#_Nhibernate_Nhibernate Mapping - Fatal编程技术网

C# 使用Nhibernate的单向多对一删除/更新策略

C# 使用Nhibernate的单向多对一删除/更新策略,c#,nhibernate,nhibernate-mapping,C#,Nhibernate,Nhibernate Mapping,我在我的系统中加载了一个表文件,它在其他几个表中使用。因此,我的系统中曾经上传的文件保存在该表中(SQLServerFileStream) 因此,每个需要上传文件的类,我都有一个类似的映射: m.ManyToOne(x => x.FileUploaded, map => { map.Column("File"); map.Class(typeof(FileUploaded));

我在我的系统中加载了一个表文件,它在其他几个表中使用。因此,我的系统中曾经上传的文件保存在该表中(SQLServerFileStream)

因此,每个需要上传文件的类,我都有一个类似的映射:

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)
        ...