Tag: postgresql

Select子句包含非EF方法调用

我在构建entity frameworkLINQ查询时遇到问题,该查询的select子句包含对非EF对象的方法调用。 下面的代码是用于将数据从一个DBMS转换为另一个DBMS上的不同模式的应用程序的一部分。 在下面的代码中,Role是我与DBMS无关的自定义类,其他类都是由我的数据库模式由Entity Framework生成的: // set up ObjectContext’s for Old and new DB schemas var New = new NewModel.NewEntities(); var Old = new OldModel.OldEntities(); // cache all Role names and IDs in the new-schema roles table into a dictionary var newRoles = New.roles.ToDictionary(row => row.rolename, row => row.roleid); // create a list or Role […]

将DataTable bulk的整个值插入postgreSQL表

在SQL中,我们执行类似这样的操作来批量插入数据表 SqlBulkCopy copy = new SqlBulkCopy(sqlCon); copy.DestinationTableName = strDestinationTable; copy.WriteToServer(dtFrom); Blockquote 但是在PostgreSQL中如何做这个操作

如何修改类的名称而不是自动单一化

使用EF创建类我选择singularize选项。 有些课程是单一的,但其他课程没有。 这项工作还可以: products -> product presentations -> presentation 但这两个不是: price_sources -x-> price_source user_types -x-> user_type 如何修复类的名称不是单一的? 如何使用下划线修复类的名称? 如何确保db的下一次更新不会再次破坏名称?

Npgsql 4.0参数和空值

使用Npgsql传递空值看起来像这样: using (NpgsqlCommand cmd = new NpgsqlCommand(“insert into foo values (:TEST)”, conn)) { cmd.Parameters.Add(new NpgsqlParameter(“TEST”, NpgsqlDbType.Varchar)); cmd.Parameters[0].Value = DBNull.Value; cmd.ExecuteNonQuery(); } 哪个工作正常。 新的Npgsql 4.0文档建议使用强数据类型声明参数,如下所示: using (NpgsqlCommand cmd = new NpgsqlCommand(“insert into foo values (:TEST)”, conn)) { cmd.Parameters.Add(new NpgsqlParameter(“TEST”, NpgsqlDbType.Varchar)); cmd.Parameters[0].Value = DBNull.Value; cmd.ExecuteNonQuery(); } 传递DBNull.Value时,抛出一般exception: 无法将类型为“System.DBNull”的对象强制转换为“System.String”。 一切仍然适用于新的无拳击参数,但新语法似乎有意义,我们想要使用它…但如何解决此数据类型断开连接? 上面的例子是一个字符串。 我认为这也会影响数字和日期。

PostGISentity framework

我试图使用Npgsql和Npgsql.EntityFramework与地理数据类型。 我可以将数据写入数据库,但我无法检索它。 我不确定这是否可行,所以我将不胜感激。 表示该表的类如下所示: internal class Geo { [Key, Column(“geo_test_id”)] public int GeoId { get; set; } [Column(“geography”)] public byte[] Geography { get; set; } } 数据插入如下所示: var geog1 = System.Data.Spatial.DbGeography.FromText(“POINT(-118.4079 33.9434)”); var geog2 = System.Data.Spatial.DbGeography.FromText(“POINT(2.5559 49.0083)”); using (var db = new Database.MyDbContext()) { db.Geos.Add(new Database.Geo() { Geography = geog1.AsBinary() }); db.Geos.Add(new Database.Geo() { Geography […]

使用dapper和postgresql抛出42601的“WHERE x IN y”子句:语法错误在“$ 1”处或附近

我有一个字符串数组,我想要一个包含IN子句的查询,如: “… WHERE t.name IN (‘foo’, ‘bar’, ‘baz’)..>” 这是我的查询的最后一位,其中包含“where in X in”子句: … left join genre_tag_band_join tj on hb.id = tj.band_id or ob.id = tj.band_id left join genre_tags t on tj.genre_tag_id = t.id inner join venues v on e.venue_id = v.id where t.name IN @tagsParam… 我像这样做一个Dapper电话 var shows = con.Query(query, (e, hb, ob, gt, v) […]

使用Entity Framework Core自动增加部分主键

我使用EF Core fluent API声明了以下模型: modelBuilder.Entity() .HasKey(p => new { p.Name, p.Id }); 当我在PostgreSQL中创建数据库时,这两个字段都被标记为主键,但Id字段未标记为自动增量。 我也尝试过添加 [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 到Foo下的Id字段,没有它对迁移代码产生任何影响。 有没有办法制作Id AI虽然它是PPK?

用NHibernate和PostgreSQL引用列名

我已经开始使用NHibernate 3.0和PostgreSQL进行一个小项目,到目前为止,由于NHibernate站点已关闭,这个过程有点粗糙,我确信这个答案在他们的网站上。 我有一个包含这两列的数据库(当然在实际表中还有更多): int ID String Feature 现在我使用FluentNHibernate进行映射,所以这样的事情: public class MyEntityMap: ClassMap { public MyEntityMap() { Id(x => x.ID); Map(x => x.Feature); } } 和一个LINQ查询来获取数据 var strucs = from str in session.Query() where str.ID < 5 select str; 查询将生成正确的SQL语句。 问题是,因为我的列名中有大写字母,你必须用引号将它们包装起来,但生成的SQL代码看起来像这样: SELECT this_.ID as ID0_0_, this_.feature as feature0_0_, FROM “MyEntity” this_ WHERE this_.ID < 5 列中没有引号。 […]

使用Npgsql postgres和C#更新命令

我创建了一个搜索表单,根据名为许可证ID的搜索值查找记录。 我能够为该值拉出所有字段。 我的问题是我正在尝试更新该记录的任何字段,例如,如果我想更新所有这些字段值在文本框中的地址字段或邮政编码字段。 我在“Lname”处或附近得到语法错误。 Lname是姓氏的数据库字段名称。 这个项目只是一个熟悉Postgres的测试项目。 这是我的源代码。 我不确定问题是什么,字段名称是否正确指定。 private void UpdateRecord() { try { NpgsqlConnection conn = Connection.getConnection(); conn.Open(); NpgsqlCommand cmd = new NpgsqlCommand(“update info set \”Fname\” = :FirstName, set \”Lname\” = :LastName, set \”Address\” = :Address,” + “set \”City\” = :City, set \”State\” = State, set \”Zip\” = :Zip,” + “set \”PhoneNumber\” = :PhoneNumber […]

具有Entity Framework 6和PostgreSQL的Mono中不存在列Extent1.Id

我试图使用包Npsql和Npsql.EntityFramework映射到具有Entity Framework的PostgreSQL数据库。 我有一个包含下表的数据库: CREATE TABLE IF NOT EXISTS Crops ( Id INT PRIMARY KEY NOT NULL, Name TEXT NOT NULL, SowingMonths INT ); Crop模型如下所示: public class Crop { public int Id { get; set; } public string Name { get; set; } public Month SowingMonths { get; set;} //Month is an enum } 在数据库上下文中,我将模式映射到public,因为PostgreSQL中默认情况下所有表都在模式公共中。 protected […]