ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

AutoCAD中使用EntityFramework连接SqlServerCe数据库

2022-05-10 20:01:39  阅读:216  来源: 互联网

标签:Customers 实体类 AutoCAD SqlServerCe EntityFramework SqlCeDbContext modelBuilder co


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,还有迁移、映射、缓存等。

标签:Customers,实体类,AutoCAD,SqlServerCe,EntityFramework,SqlCeDbContext,modelBuilder,co
来源: https://www.cnblogs.com/ztcad/p/16153138.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有