我有一个LINQ到实体查询(EF 4.3)指示LINQ到实体,以生成与Oracle兼容SQL
var query = from item in db.TableTest
select item.VAL;
它转换为这条SQL语句
SELECT
"Extent1"."VAL" AS "VAL"
FROM "dbo"."TEST_TABLE" "Extent1"
数据库是甲骨文。
当我执行查询时,我得到消息,数据表不存在。问题是(“dbo”)部分。如果我删除它并直接执行此查询(不通过LINQ,但通过oracleconnection等)
SELECT
"Extent1"."VAL" AS "VAL"
FROM "TEST_TABLE" "Extent1"
然后一切正常。我回到了价值观。
如何指示Linq To Entities输出Oracle兼容的SQL?
感谢您的快速回复。我不允许在数据库中更改任何内容。我也是一位oracle新手。 我没有实体模型。我使用POCO类。我发现通过使用[Table(“TABLE_NAME”,Schema =“SCHEMA_NAME”)]属性注释我的实体类,我解决了问题 – 2012-08-10 15:20:53
@Saysmaster我不知道如果您是先使用代码还是模型优先方法没有指定)。在我的回答中,我假设你使用的是实体模型,所以我展示了如何修改模型的'Schema'属性。由于您实际上首先使用代码,因此您必须手动更改属性中的“Schema”属性,就像您自己找到的那样。 – ken2k 2012-08-10 15:23:56
由于某些原因,我无法从此数据库中自动生成实体模型。这主要是由于生成器无法在表上找到主键。所以我尝试创建POCO类并将它们手动映射到我想要的表格 – 2012-08-10 15:27:07