• AutoCAD中使用EntityFramework连接SqlServerCe数据库


    1、需要用到的依赖库如下:

    EntityFramework.6.4.4

    EntityFramework.SqlServerCompact.6.4.4

    Microsoft.SqlServer.Compact.4.0.8876.1

    2、app.config需要的配置:

    <configSections>
      <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <  section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>
    
      <!-- Add the attribute 'codeConfigurationType' to the 'entityFramework' root element to overwrite the global DbConfiguration -->
      <entityFramework>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
          <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
        </providers>
      </entityFramework>
    
      <system.data>
        <DbProviderFactories>
          <remove invariant="System.Data.SqlServerCe.4.0" />
          <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
        </DbProviderFactories>
      </system.data>

     3、继承DbContext类,其中sqlce是在app.config里配置的连接字符串,这样就完成了最基本的框架。

    public class SqlCeDbContext : DbContext
        {
            public SqlCeDbContext()
                : base("sqlce")
            { }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
                Database.SetInitializer(null); // 不初始化
                base.OnModelCreating(modelBuilder);
            }
        } 

    接下来就通过Linq实现数据访问

    // 创建实体类
        public class Customer
        {
            /// <summary>
            /// Gets or sets the username
            /// </summary>
            public string Username { get; set; }
        }
    
    // SqlCeDbContext中增加实体类的数据集
        public DbSet<Customer> Customers { get; set; }
    
    // 调用,返回所有数据
        SQLiteDbContext context = new SQLiteDbContext();
        List<Customer> customers = context.Customers.ToList();
    // 返回单个数据
        Customer customer = context.Customers.Where(x => x.Username == "ztcad").FirstOrDefault();

    实际系统使用当中会更加复杂,比如封装基本实体类BaseEntity -> EfRepository,支持多数据源IDataProvider -> IEfDataProvider、EfDataProviderFactory,还有迁移、映射、缓存等。

  • 相关阅读:
    2.完全背包问题
    1.01背包问题
    19.区间合并
    18.区间和
    16.数组元素的目标和
    15.最长连续不重复子序列
    14.差分矩阵
    1.注册七牛云账号
    1.1 linux查看系统基本参数常用命令
    图书管理增删改查&父子调用&前后端
  • 原文地址:https://www.cnblogs.com/ztcad/p/16153138.html
Copyright © 2020-2023  润新知