Hello,
I have been having a problem when using code first for talking to an oracle database. The problem is that I would like to use non capitalized properties/tables, but I keep getting exceptions when I try it. Here is an example of an entity:
[Table("DEPARTMENTS2")]
public partial class Departments2
{
[Column("ID")]
public int Id { get; set; }
[Required]
[StringLength(50)]
[Column("DESCRIPTION")]
public string Description { get; set; }
}
Please notice that I have to change via annotations the capitalization of the name of tables and fields, otherwise I get an exception like "table or view not found" when trying to query the table Departments2 from EF. Is it mandatory to do it like this or there is a solution to my problem?
Thanks.
EF Code First and capitalization
Re: EF Code First and capitalization
Please run the following code with a clean schema:gavilanch wrote:I would like to use non capitalized properties/tables
Code: Select all
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
// http://www.devart.com/dotconnect/oracle/docs/?dbmonitor.html
var monitor = new Devart.Data.Oracle.OracleMonitor() { IsActive = true };
using (var context = new MyDbContext())
{
context.Database.Initialize(false);
}
}
}
class MyDbContext : DbContext
{
DbSet<Departments2> depts { get; set; }
}
[Table("Departments2")]
public partial class Departments2
{
[Column("ID")]
public int Id { get; set; }
[Required]
[StringLength(50)]
[Column("Description")]
public string Description { get; set; }
}
}
Code: Select all
CREATE TABLE "Departments2" (
ID NUMBER(10) NOT NULL,
"Description" NVARCHAR2(50) NOT NULL,
CONSTRAINT "PK_Departments2" PRIMARY KEY (ID)
)
If this doesn't help, please send us a small complete test project for reproducing the issue you have encountered.
Re: EF Code First and capitalization
I am sorry, it seems I did not make myself clear. Either way I solved my problem.
For future reference, my problem was that when I was making queries (SELECT), to the database (using Entity Framework), I was getting errors like "table or view does not exist", the reason for this is that the dot connect oracle provider was generating queries with quotations around identifiers (table names and column names). It turns out that I was able to turn off those quotations by using:
Thanks for the service, and great tools you guys have!
For future reference, my problem was that when I was making queries (SELECT), to the database (using Entity Framework), I was getting errors like "table or view does not exist", the reason for this is that the dot connect oracle provider was generating queries with quotations around identifiers (table names and column names). It turns out that I was able to turn off those quotations by using:
Code: Select all
Devart.Data.Oracle.Entity.Configuration.OracleEntityProviderConfig config = Devart.Data.Oracle.Entity.Configuration.OracleEntityProviderConfig.Instance;
config.Workarounds.DisableQuoting = true;