use*_*085 6 oracle identity-column repository-pattern oracle11g entity-framework-4
如何通过Entity Framework自动为Oracle数据库生成标识?
我有一个函数,我可以调用并生成不在上下文中的列如何通过Entity Framework显式调用存储过程?我正在使用存储库模式.
用于插入记录的随机数生成器(我通过UDF获取主键并将其传递给要插入的实体).
1)在Oracle中创建序列
CREATE SEQUENCE dummy_test_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1;
Run Code Online (Sandbox Code Playgroud)
2)创建财产
sealed public class CommonUtilities
{
#region Sequences
public static int DummyTestSeq
{
get
{
using (Entities ctx = new Entities())
{
return Convert.ToInt32(ctx.Database.SqlQuery<decimal>("SELECT dummy_test_seq.NEXTVAL FROM DUAL").ToList().Single());
}
}
}
#endregion
}
Run Code Online (Sandbox Code Playgroud)
3)获取序列
public int InsertTable1()
{
using (Entities ctx = new Entities())
{
ctx.tabel1.Add(new tabel1()
{
SEQ = CommonUtilities.DummyTestSeq,
Date= DateTime.Now
});
return ctx.SaveChanges();
}
}
Run Code Online (Sandbox Code Playgroud)