EPR类企业管理系统

在我们现有系统基础上或全新开发,提供定制服务
为您的企业高效快速实施ERP,WMS,MES,CRM管理系统
全面管控物料仓库、销售业务、采购业务、仓库业务
生产过程、质量检验、组织架构、业务报表


定制
QQ:460-3528

开发
QQ群:3360-90194

源码
微信:136-3650-3721

团块图像在实体框架属性

可以声明图片属性作为字节数组属性,或者作为一个参考属性的的MediaDataObject型(可用在商业类库)。

图像作为字节数组

下面的示例说明了如何在Entity Framework Code-First类中实现图像属性。声明一个字节 数组属性,然后将ImageEditorAttribute应用于它。(可选)您可以使用属性的参数来自定义图像编辑器的行为。

using System.Drawing;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations.Schema;
// ...
[DefaultClassOptions]
public class Employee {
    // ...
    [ImageEditor(ListViewImageEditorMode = ImageEditorMode.PopupPictureEdit,
        DetailViewImageEditorMode = ImageEditorMode.DropDownPictureEdit)]
    public byte[] Photo { get; set; }
}

有关上面代码中传递给ImageEditor属性的参数的详细信息,请参考ImageEditorAttribute主题。您还可以使用“模型编辑器”中的以下属性来指定图像选项:

提示

当应用程序在列表视图中显示很多大图像时,它可能会消耗大量内存。对于具有许多同时连接的客户端的ASP.NET应用程序,这是最正确的。为了提高性能,可以使用延迟加载,如“如何在Entity Framework中启用图像的延迟加载”示例中所示。

图像作为MediaDataObject

下面的示例说明了如何在Entity Framework Code-First类中实现MediaDataObject类型的图像属性(在Business Class Library中提供)。WinForms和ASP.NET图像属性编辑器都自动用于MediaDataObject类型的属性,不需要属性(但是,您仍然可以应用ImageEditorAttribute来自定义编辑器的选项,因为上面已对字节数组进行了演示)。使用此类型可减少流量,因为图像被缓存在浏览器缓存中(与byte []类型的图像相比)。延迟加载始终用于MediaDataObject属性。

using DevExpress.ExpressApp;
using DevExpress.Persistent.Base;
using DevExpress.Persistent.BaseImpl.EF;
// ...
[DefaultClassOptions]
public class Contact {
    [Browsable(false)]
    public int ID { get; private set; }
    public string Name { get; set; }
    public virtual MediaDataObject Photo { get; set; }
}
相关文章

转载保留此链接,注明出处