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

EF6+Sqlite注意事项

发布时间:2020-12-12 19:01:40 所属栏目:百科 来源:网络整理
导读:运行环境~VS2017+Win10 1.引用SQLite相关~ 2.添加引用后,Web.config文件已经变化,修改部分地方及连接字符串~ provider invariantName ="System.Data.SQLite" type ="System.Data.SQLite.EF6.SQLiteProviderServices,System.Data.SQLite.EF6" / connectionS

运行环境~VS2017+Win10

1.引用SQLite相关~

2.添加引用后,Web.config文件已经变化,修改部分地方及连接字符串~

<provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices,System.Data.SQLite.EF6" />
<connectionStrings>
  <
add name="MusicStoreEntities" connectionString="Data Source=|DataDirectory|MvcMusicStore.db" providerName="System.Data.SQLite.EF6" />
</connectionStrings>

3.编写相关实体类和连接上下文类

//实体类例
//同时指定 Table 特性,不指定只能使用
SqlQuery 进行查询
[Table("Artist")]
public
class Artist { public int ArtistId { get; set; } public string Name { get; set; } }
//上下文类例
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Web;

namespace MusicStore.Models {
    public class MusicStoreEntities:DbContext {
        public MusicStoreEntities()
            : base("name=MusicStoreEntities") {
        }
    //重写该方法用于指定单数形式的表名,不重写这里的话,在实体类上指定 Table 特性
        protected override void OnModelCreating(DbModelBuilder modelBuilder) {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        }

        public DbSet<Album> Albums { get; set; }
        //public virtual DbSet<Genre> Genres { get; set; }
        public DbSet<Genre> Genres { get; set; }
    }
}

对SQLite数据库的使用进行测试~

MusicStoreEntities db = new MusicStoreEntities();

//var sql = "SELECT * FROM genre";
//var genres = db.Database.SqlQuery<Genre>(sql).ToList();
var genres = db.Genres.ToList();
return View(genres);

两种查询方式均能正常返回数据。

(编辑:李大同)

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

    推荐文章
      热点阅读