在Entity Framework + PostgreSql中是否有使用数组的方法?

12

在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声称他们可以。 - Gert Arnold
1
@GertArnold,您能指出Devart在哪里说他们这样做吗?我正在开发Npgsql,据我所知,EF本身对基本类型之外的类型并不是很开放。 - Shay Rojansky
也许我说得太多了。在这里,他们谈到了他们的ADO.NET提供程序:“它支持各种PostgreSQL特定功能,如安全的SSL连接、PostgreSQL通知、PostgreSQL批量数据加载、GEOMETRY、PostgreSQL ARRAY类型等等。” - Gert Arnold
啊,好的。我猜这意味着他们在 ADO.NET 层面上支持它,而不是在 EntityFramework 中支持。问题似乎更多地与 EF 本身有关,而不是与 Npgsql 或 dotConnect 的实现有关。但我还没有深入研究过这个问题。 - Shay Rojansky
我不相信EF有任何支持,因为它并非以这种方式设计。请查看以下代码:https://github.com/npgsql/npgsql/blob/master/Npgsql.EntityFramework/NpgsqlMigrationSqlGenerator.cs#L579。 - ax1mx2
1个回答

14

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接