当前位置:首页 » 编程语言 » dbcontextsql
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

dbcontextsql

发布时间: 2022-06-01 14:30:10

1. 怎么才能引用 dbcontext

这是 EntityFramework (简称 EF)中的一个类,可以理解为一个数据库对象的实例。在 EF 中,无需手动的拼接 sql 语句对数据库进行增删改查,而是通过 DbContext 来进行相应操作。

题主应该要搜索的是 EF 的用法,而非 MVC。

2. mysql dbcontext 怎么连接

1.从官方网站下载ABP项目模板,并解压到本地,用VS打开,这里我们新建一个项目ConnectMySql。
2.设置XXX.Web为启动项目,Build这个Solution,使得NuGet下载相关的包。
3.准备好一个SQL Server数据库,修改Web.config数据库的ConnectionString,连接到SQL Server数据库。
4.打开Package Manager Console窗口,选择XXX.EntityFramework为默认项目,运行Update-Database命令,系统会在SQL Server中创建数据库和对应的表。

3. sql server compact4.0怎么修改表名

本文接续自《Code-First 在SQLServer Compact 4.0 中的应用(一),基础配置》,解决数据库架构需要变更时遇到的问题。

测试环境: Visual Studio 2012、Entity Framework 5.0、SQL Server Compact 4.0

回顾例子中的代码(改用MVC描述):

public class LiangyichenDBContext : DbContext
{
public DbSet<LiangyichenDB> Items { get; set; }
}

public class LiangyichenDB
{
[Key]
public int index { get; set; }

public string title { get; set; }

public DateTime pubdate { get; set; }

}

public ActionResult Index()
{
var context = new LiangyichenDBContext();

context.Items.Add(new LiangyichenDB { title = "1", pubdate = DateTime.Now });
context.Items.Add(new LiangyichenDB { title = "2", pubdate = DateTime.Now });
context.Items.Add(new LiangyichenDB { title = "3", pubdate = DateTime.Now });
context.SaveChanges();

return View(context.Items);
}

@model IQueryable<codefirst_Migrations.Models.LiangyichenDB>
@{
Layout = null;
}<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<div>
@foreach (var i in Model)
{
<p>@i.title :@i.pubdate</p>
}
</div>
</body>
</html>
上例在 Visual Studio 2012 中调试通过。

首先我们一定要运行一次,确保生成了原始数据库(/app_data/Database.sdf)

下面我们开始更改数据库架构:

public class LiangyichenDB
{
[Key]
public int index { get; set; }

public string title { get; set; }

public DateTime pubdate { get; set; }

//增加一个字段
public string notes { get; set; }

}

4. 如何将参数传递给DbContext.Database.ExecuteSqlCommand方法

var firstName = "John";
var id = 12;
var sql = @"Update [User] SET FirstName = {0} WHERE Id = {1}";
ctx.Database.ExecuteSqlCommand(sql, firstName, id);

5. 一个数据库事务中可否包含两个不同的连接

就我的理解应该是不行的,这个很好说明,比如说在java中:数据库的事务是通过Connection对象的setAutoComit方法设置是否自动提交,comit方法提交事务,两个连接Connection对象就是两个事务了。不过在分布式事务中一个事务允许有多个连接,这个也比较好理解,因为分布式事务处理时不是在一台机器上面完成的,也许一台机器在北京,一台机器在上海,它们分别在各自的事务中完成的,但是整体算是一个事务(任何一个事务失败,整个事务就失败了)。

6. dbcontext savechanges 还有sql 能同步吗

var firstName = "John"; var id = 12; var sql = @"Update [User] SET FirstName = {0} WHERE Id = {1}"; ctx.Database.ExecuteSqlCommand(sql, firstName, id);

7. sqlsugar 怎么看生成的sql

public class DbContext{ public DbContext() { Db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "server=.;uid=sa;pwd=sasa;database=SqlSugar4XTest", DbType = DbType.SqlServer, IsAutoCloseConnection = true,//开启自动释放模式和EF原理一样我就不多解释了 //InitKey默认SystemTable }); } public SqlSugarClient Db;//用来处理事务多表查询和复杂的操作 public SimpleClient<Student> StudentDb { get { return new SimpleClient<Student>(Db); } }//用来处理Student表的常用操作 public SimpleClient<School> SchoolDb { get { return new SimpleClient<School>(Db); } }//用来处理School表的常用操作}

8. DbContext.Database.SqlQuery<TElement>怎么实现联表查询

现在我要执行一条联表查询SQL语句:
string sql = select pp.Id, pp.PlayerId, pp.NickName PetName, p.NickName PlayerName from player p, petPlayer pp where p.Id=pp.PlayerId and p.NickName='尤利娅';
我执行
var rs = myContext.Database.SqlQuery<Object>();
后不知道该怎么处理才能访问原表结构的相对应的字段值?请问我该怎么做?最好详细一点,我初学EF,谢谢!
说明:因为不知道DbContext.Database.SqlQuery<TElement>()的TElement该用什么类型代替,没办法就用了Object。

C# code
var query=from p in db.Player join pp in db.petPlayer on p.Id equals pp.PlayerId where p.NickName=="尤利娅" select new { pp.Id, pp.PlayerId, PetName=pp.NickName , PlayerName =p.NickName }; 返回的是匿名类

9. .net中一个方法要对多张表进行增加修改操作的时候,中途某一操作报错了,那怎么返回之前表的操作

这取决于你更新数据的方式,我是使用EF更新数据的

如果一次操作可能产生多条SQL语句,为防止中间部分SQL执行出错导致产生脏数据;会运用事务统一提交:

using(vardbContext=newDbContext())
using(vartrans=dbContext.Database.BeginTransaction(System.Data.IsolationLevel.ReadCommitted))
{
//数据更新。。。
dbContext.SaveChanges();//使用EF更新数据时要有这条语句
trans.Commit();//这条语句表示提交事务
}

事务就是用来保持数据一致性的

10. EF查询 linq写法 DbContext.DbSet<TEntity>

这两种都是直接查询数据库的,没有在内存中存储

但要是这样两种都可以先把数据缓存到内存中再查:

  1. List<BlogArt> ba=Db.BlogArt.toList();

    ba.where(a => a.BlogCata_ID== 1)

  2. var ls=
    from a in Db.BlogArt.toList()
    where a.BlogCata_ID==1
    select a;