ASP.net 用VS2010+SQL server做一个新闻发布系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.net 用VS2010+SQL server做一个新闻发布系统相关的知识,希望对你有一定的参考价值。

网上看了好多,不是要钱 就是下载没办法调试成功 求整个项目的源代码,求各位大侠发来我的q q E—mail里面,8 6 4 9 4 4 5 8 8

参考技术A http://www.mycodes.net/67/7842.htm 你看看这个,我以前下过能运行,调试就是你附加上数据库,改web.config的连接字符串就可以了

实体框架、ASP.NET 和 SQL Server CE

【中文标题】实体框架、ASP.NET 和 SQL Server CE【英文标题】:Entity Framework, ASP.NET, and SQL Server CE 【发布时间】:2012-12-19 03:06:37 【问题描述】:

在 VS 2010 SP1 中,我从“internet”模板创建了一个 ASP.NET MVC4 项目。然后我为 SQL Server CE 4.0 创建了一个连接字符串:

<add name="DefaultConnection"
     connectionString="Data Source=|DataDirectory|MyDatabase.sdf;Password=123456" 
     providerName="System.Data.SqlServerCe" /> 

在 cassini 中成功调试启动 Web 应用程序后,我选择“注册”用户选项。这会立即导致InitializeSimpleMembershipAttribute 过滤器执行。过滤器在到达此代码时使站点崩溃:

Database.SetInitializer<UsersContext>(null);
using (var context = new UsersContext())

    if (!context.Database.Exists())
    
        // Create the SimpleMembership database without Entity Framework migration schema
        ((IObjectContextAdapter)context).ObjectContext.CreateDatabase();
    

//This line never executes.  It is meant to configure my custom user table.
WebSecurity.InitializeDatabaseConnection("DefaultConnection", "Users", "ID", "UserName", true);

Exists() 检查抛出 ArgumentException 声明:

无法找到请求的 .Net Framework 数据提供程序。它可能没有安装。

现在我想确定 (1) 我的连接字符串没有问题,并且 (2) 我的提供程序没有问题。为此,我在Exists() 检查之前插入了一段代码。 sn-p 使用新的SqlCeEngine 创建数据库,并调用 Dapper 来设置用户表。该代码工作得很好,就在Exists()再次检查之前。

然后我认为 EF 可能需要一些额外的设置帮助。我尝试在web.config 中替换 EF defaultConnectionFactory:

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
    <parameters>
      <parameter value="System.Data.SqlServerCe.4.0" />
    </parameters>
  </defaultConnectionFactory>
</entityFramework>

我收到的异常仍然没有改变。

我现在想知道 EF 是否需要“特殊”连接字符串才能与 SQL Server CE 一起使用。我将检查here 和here。但乍一看,我不确定这是问题所在。

想法?

【问题讨论】:

【参考方案1】:

EF 要求安装提供程序。 使用连接到数据库选项之一进行检查。例如,将实体数据模型添加到项目中。只是提供给它的提供者。你看到你的首选连接客户端了吗?

似乎精简版应该有一些限制...... http://technet.microsoft.com/en-us/library/cc835494.aspx

那么我认为它的“默认连接”问题 请参阅上下文构造函数。除非您传入替代名称,否则 EF 会查找该名称的连接。 试试……

<connectionStrings>
    <add name="MyContextName" connectionString="bla";App=EntityFramework"
       providerName="System.Data.SqlServerCe.4.0" />

【讨论】:

“Microsoft SQL Server Compact 4.0”是我在该对话框中已经存在的选项。因此,显然,我已经安装了它。还是我误解了你的意思? 请检查 EF 正在使用的连接名称。请参阅构造函数。假设你有一个类 myContext:DbContext 原来只是将providerName从“System.Data.SqlServerCe”改为“System.Data.SqlServerCe.4.0”就可以解决问题了!当 Dapper 在没有“.4.0”扩展名的情况下成功工作时,它真的让我偏离了目标。我猜 Dapper 知道如何在版本之间自动切换,而 EF 不能。 我正要问你从哪里得到提供者的名字...感谢更新...非常好的习惯【参考方案2】:

您需要安装 Sql Server Compact 版本。您可以从here下载。

【讨论】:

我使用了soadyp建议的测试来确认它确实已经安装了。我还检查了网络平台安装程序,这表明我已经安装了SQL Server Compact SP1 CTP1 以及VS 2010 SP1 tools for CE 4.0。唯一被列为尚未安装的是VS 2010 SP1 tools for CE 4.0 Installer

以上是关于ASP.net 用VS2010+SQL server做一个新闻发布系统的主要内容,如果未能解决你的问题,请参考以下文章

用vs2010平台,c#写的asp.net网站,动态增加和减少Textbox

如何在 VS2010 中使用 asp.net 重新配置和编译网站到 Framework 3.5?

怎么用asp.net中gridview 对下面xml数据进行增删改查(c# vs2010 3.0)

用vs2010写的asp.net的代码,想解决八皇后问题但是运行时总是出不来结果请问这是怎么回事,代码见图片

Asp.net的GridView控件的OnRowDeleting事件怎么使用?VS2005.net,C#,SQL 2005

从 VS2010 调试远程 IIS 服务器上运行的 ASP.NET 应用程序