【发布时间】:2015-05-25 01:00:34
【问题描述】:
是否可以在 Entity Framework 中使用 PostgreSql 中的数组?
假设,例如,我们有 POCO 类
public class MyTable
{
[Key]
[Column("gid")]
public int Gid { get; set; }
[Column("name")]
public string Name { get; set; }
[Column("email")]
public string Email { get; set; }
[Column("somedata")]
public int[] SomeData { get; set; }
}
此时,Entity Framework 根本不创建列“somedata”并跳过它。有没有办法做到这一点?我的意思是不必使用单独的表格。当您想将少量或有限数量的值存储到单个列中时,Postgres 数组会派上用场。
【问题讨论】:
-
可能取决于数据提供者。 Devart dotConnect 声称他们这样做了。
-
@GertArnold,你能指出 Devart 说他们在哪里做的吗?我在 Npgsql 上工作,AFAIK EF 本身对基本类型之外的类型不是很开放。
-
也许我说的太多了。 Here 他们关于他们的 ADO.NET 提供程序:“它支持广泛的 PostgreSQL 特定功能,例如安全 SSL 连接、PostgreSQL 通知、PostgreSQL 批量数据加载、GEOMETRY、PostgreSQL ARRAY 类型等。”
-
啊,好的。我猜这意味着他们在 ADO.NET 层而不是在 EntityFramework 中支持它。问题似乎更多出在 EF 本身,而不是 Npgsql 或 dotConnect 的实现。但是我没有很深入地研究这个。
-
我不相信 EF 对此有任何支持,它只是不是这样设计的。看看下面的code。
标签: arrays entity-framework postgresql npgsql