惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
腾讯CDC
Last Week in AI
Last Week in AI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园_首页
量子位
博客园 - 聂微东
Jina AI
Jina AI
小众软件
小众软件
The Cloudflare Blog
有赞技术团队
有赞技术团队
V
V2EX
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
B
Blog
MongoDB | Blog
MongoDB | Blog
L
LangChain Blog
宝玉的分享
宝玉的分享
C
Check Point Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
N
Netflix TechBlog - Medium
I
InfoQ
J
Java Code Geeks
S
SegmentFault 最新的问题
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
D
DataBreaches.Net
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog RSS Feed
S
Schneier on Security
Webroot Blog
Webroot Blog
P
Proofpoint News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
Project Zero
Project Zero
Scott Helme
Scott Helme
C
CERT Recently Published Vulnerability Notes
P
Privacy International News Feed
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security

博客园 - 王继坤

DataTable 递归 简单的程序,来实现无限级列表 结合 jquery.table.js 实现 asp.net mvc 2 简简单单做开发 使用DataContext扩展方法Find<TEntity>(TEntity obj) 遇到的问题 asp.net mvc 2 简简单单做开发 实现基本数据操作操作RepositoryController<T> asp.net mvc 2 简简单单做开发 自定义Controller基类 - 王继坤 asp.net mvc 2 简简单单做开发 自定义DropdownList控件 asp.net mvc 2 简简单单做开发 通用增删改基本操作通用页面 asp.net mvc 2 DisplayTemplates 的使用 FcDigg 源码 asp.net 3.5 linq to sql 扩展方法 linq to access 简单实现 实例demo asp.net mvc 随想 asp.net mvc ajax实现1 asp.net ajax fccms 小型简单个人blog源码 FCKEDITOR中文使用说明 js调用 dotfuscator.exe 采用线程生成静态页面 新的开始--- gridview 实现多字段综合查询
linq to access 简单实现
王继坤 · 2009-06-18 · via 博客园 - 王继坤

      为了节省服务器,网站的访问量也不算太大,一直想用access数据库,但苦于linq 不支持access,在网上找了很多的方法,但觉的都不是太完美。在看了linq to sql的源码后,才发现,linq to sql 可以用于 access数据库。因为在linq to sql里面都是用的DbConnection,而不是SqlConnection,这样的话理论上可以支持所有的数据,但对于一些数据库的支持可能不是太好。例如分页,sql2000,sql2005,sql2008数据,使用linq的代码都不一样,而access和sql2000比较接近,就可以直接使用Sql2000Provider。查了一些资料看到,理论有那个数据库provider,就可以支持这种数据库。也看了dblinq 0.8支持不同数据库的源码,但自己能力有限不能写一个access的,还是用官方的吧。下边说一下方法。其实他不太麻烦,只是改一下,*.designer.cs文件里的代码。因为access 不支持dbo,而linq to sql里数据表前面都有dbo.的前缀, [Table(Name="dbo.wjk3")],将dbo.去掉,不然的话,会提示你找不到dbo数据库,这点上,自己走了不少弯路。在public partial class DDataContext: System.Data.Linq.DataContext上边加上, [Provider(typeof(System.Data.Linq.SqlClient.Sql2000Provider))]设定为Sql2000Provider,不然的话 linq 里面的first 不能使用,另外分页也不能使用,因为他默认的是Sql2008Provider。这一点很重要,到现在为止,基本上解决linq to access的使用,但还有一点问题,从数据库读取一条记录,修改后使用SubmitChanges()更新,提示错误,不能修改,错误内容:找不到行或行已更改。 这一点可以使用一些自定义方法来实现更新,使用ExecuteCommand()直接执行更新sql语句来实现。感觉linq to sql的跟踪,如果不适用SubmitChanges()更新的话,跟踪也每太大的意义,实现跟踪可能会降低系能,另外添加,删除也依赖跟踪,如果不使用跟踪的话,还要扩展添加,删除的方法。

[System.Data.Linq.Mapping.DatabaseAttribute(Name="game1")]
    [Provider(
typeof(System.Data.Linq.SqlClient.Sql2000Provider))]
    
public partial class dbgame : System.Data.Linq.DataContext

System.Data.Linq.DataContext的扩展的方法:sql to sql 类的名称dbgame

Code

没有解决的问题:

怎样能解决更新的时候能直接使用SubmitChanges();