gpt4 book ai didi

c# - System.Drawing.Image 的 Nhibernate 映射

转载 作者:太空狗 更新时间:2023-10-30 00:12:34 25 4
gpt4 key购买 nike

问题:我在将此类序列化为 nHibernate xml 文件时遇到异常({“无法确定类型:System.Drawing.Image、System.Drawing,列:NHibernate.Mapping.Column(Settings)”}) .

如何将 System.Drawing.Image 映射到 nHibernate?以及要使用什么 MS-SQL 数据库类型?

using System;
using System.Collections.Generic;
using System.Text;

namespace nhDBapi.Tables
{

[NHibernate.Mapping.Attributes.Class(Name = "nhDBapi.Tables.clsSettings, nhDBapi", Table = "lsSettings")]
public class clsSettings
{

[NHibernate.Mapping.Attributes.Id(Name = "Settings", Column = "Settings", TypeType = typeof(System.Drawing.Image))]
public System.Drawing.Image Settings;

} // End partial class lsSettings


} // End Namespace nhDBapi.Tables

最佳答案

我不建议直接映射到 System.Drawing.Image。它不仅是一次性的(NHibernate 必须处理它,我不确定它是否可以),而且如果您获取 clsSettings 的集合,您将创建大量 Image 实例,从而浪费CPU 和内存(如果您不全部使用的话)。

相反,映射到具有 sql 类型 varbinary 的 byte[] 并且根据需要处理从 Image 到 Image 的转换。 Example .

另外值得一试的是关于 large object storage support for NHibernate 的项目,似乎比映射到 byte[] 更有效,而且它也是一篇关于所有选项的优秀文章。

关于c# - System.Drawing.Image 的 Nhibernate 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3861350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com