加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

entity-framework – 实体框架 – 删除Oracle 10g中的实体{由于

发布时间:2021-01-12 18:28:00 所属栏目:站长百科 来源:网络整理
导读:我尝试在Oracle 10g上的Entity Framework中使用Repository模式.我简化了我的代码: 这是SQL代码: -- Create tablecreate table TESTTABLE( MODULE_UNIQUE_ID VARCHAR2(32) not null,PANEL_STATUS VARCHAR2(8) not null)tablespace SYSTEM pctfree 10 pctuse

我尝试在Oracle 10g上的Entity Framework中使用Repository模式.我简化了我的代码:

这是SQL代码:

-- Create table
create table TESTTABLE
(
  MODULE_UNIQUE_ID VARCHAR2(32) not null,PANEL_STATUS     VARCHAR2(8) not null
)
tablespace SYSTEM
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary,unique and foreign key constraints 
alter table TESTTABLE
  add constraint TESTTABLE_PK_01 unique (MODULE_UNIQUE_ID)
  using index 
  tablespace SYSTEM
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

我创建了简单的存储库类:

public interface IRepository<TEntity,TCtx>
{
    TCtx Session { get;}
    void Add(TEntity entity);
    void AddOrAttach(TEntity entity);
    void Delete(TEntity entity);
    int Save();
    TEntity SelectByKey(string colName,string key);
}

public class Repository<TEntity,TCtx> : IRepository<TEntity,TCtx>,IDisposable
    where TEntity : EntityObject
    where TCtx : ObjectContext
{
    #region Private fields

    private TCtx _ctx;
    private string _keyProperty = "ID";

    public int Save()
    {
        return _ctx.SaveChanges();
    }

   public TEntity SelectByKey(string colName,string key)
    {
        KeyProperty = colName;

        // First we define the parameter that we are going to use the clause.
        var xParam = Expression.Parameter(typeof(TEntity),typeof(TEntity).Name);
        MemberExpression leftExpr = Expression.Property(xParam,KeyProperty);
        Expression rightExpr = Expression.Constant(key);
        BinaryExpression binaryExpr = Expression.Equal(leftExpr,rightExpr);

        //Create Lambda Expression for the selection
        Expression<Func<TEntity,bool>> lambdaExpr = Expression.Lambda<Func<TEntity,bool>>
            (binaryExpr,new ParameterExpression[] { xParam });

        //Searching ....
        //IList<TEntity> resultCollection = ((IRepository<TEntity,TCtx>)this).SelectAll(new Specification<TEntity>(lambdaExpr));

        //if (null != resultCollection && resultCollection.Count() > 0)
        //{
        //    //return valid single result
        //    return resultCollection.First();
        /                        

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读