标签: sql-server-ce

如何使用Java的SQL Server Compact Edition(CE)?

我想从Java访问Microsoft SQL Server Compact Edition数据库.我怎样才能做到这一点?我搜索了SQLCE的JDBC驱动程序,但我找不到.

java sql-server jdbc sql-server-ce

7
推荐指数
1
解决办法
6708
查看次数

连接字符串中的SQL Server Compact"数据目录"宏 - 需要更多信息

因此,如此msdn页面所述,当您为SQL Server Compact 3.5定义连接字符串时,可以使用"数据目录"宏,如下所示:

这个msdn页面引用:

数据目录支持
SQL Server Compact 3.5现在支持Data Directory宏.这意味着如果添加字符串| DataDirectory | (用管道符号括起来)到文件路径,它将解析为数据库的路径.

例如,考虑连接字符串:

"数据源= c:\ program files\MyApp\Mydb.sdf"

使用数据目录时,您可以改为使用以下连接字符串:

"数据源= | DataDirectory |\Mydb.sdf"

有关更多信息,请参见如何:使用应用程序部署SQL Server Compact 3.5数据库.

但是,msdn上的"获取更多信息"链接实际上并没有提供更多信息.

所以我的问题是:

如何|数据目录| 宏在运行时翻译?对于WinForm应用程序,它似乎只是给出可执行文件的位置.还是比这更复杂?

.net sql-server connection-string sql-server-ce datadirectory

7
推荐指数
1
解决办法
4922
查看次数

为什么我的DataContext不会使用SQL Server Compact Edition 4,而不是尝试使用3.5?

我正在使用SQL Server Compact Edition 4 CTP1,因为我想将它用作低流量Web应用程序的数据存储.当我尝试创建一个DataContext连接字符串指定System.Data.SqlServerCe.4.0(为了使用LINQ To SQL)时,我收到以下错误消息:

Cannot open '|DataDirectory|\data.sdf'. Provider 'System.Data.SqlServerCe.3.5' not installed.
Run Code Online (Sandbox Code Playgroud)

那么为什么我的代码不使用SQL CE的第4版?

背景故事:我正在使用Visual Web Developer Express 2010进行开发,但我下载了WebMatrix测试版并使用其设计器创建了.sdf包含一些测试数据的SQL CE 4 文件.

使用这些SqlCeConnection/SqlCeCommand/SqlCeDataReader类,我成功创建了一个基本的MVC应用程序,它可以检索测试数据并显示它.SQL CE 4二进制文件将复制到应用程序的bin文件夹中.在我的控制器中:

var connectionString = ConfigurationManager.ConnectionStrings["Main"].ConnectionString;
var tmp = new Dictionary<string, string>();

using(var conn = new SqlCeConnection(connectionString))
{
    conn.Open();

    using (SqlCeDataReader r = new SqlCeCommand("select * from ttest", conn).ExecuteReader())
    {
        while (r.Read())
        {
            tmp.Add(r["id"].ToString(), r["name"].ToString());
        }
    }
}

return View(new TestViewModel { …
Run Code Online (Sandbox Code Playgroud)

sql-server-ce linq-to-sql sql-server-ce-4 asp.net-mvc-2

7
推荐指数
1
解决办法
4769
查看次数

将SQL CE 4部署到IIS 7 - 需要特殊权限吗?

我有一个使用新的SQL CE 4 CTP的ASP.NET 4站点.该站点在本地(Win7上的IIS 7.5)工作正常,在Server 2003/IIS 6中运行良好.在Server 2008上部署到IIS 7时失败.我得到的错误是:

访问被拒绝.(HRESULT异常:0x80070005(E_ACCESSDENIED))

有趣的是,如果我将应用程序池用户从其默认用户切换到LocalSystem,一切都很好.很明显,某处存在权限问题.

长话短说,有人知道在部署SQL CE 4数据库时需要设置哪些特殊权限?(顺便说一句,我们已经在db本身和c:\ windows\temp上设置了r/w访问权限)

谢谢!

asp.net sql-server-ce

7
推荐指数
1
解决办法
2283
查看次数

使用共享主键关联时,首先在EF 4.1代码中删除级联删除规则

我基于这个答案实现了双向1:1关系:

实体框架中的主/外键

我这样定义双向关系:

public class Student
{   
    public virtual int StudentId { get; set; }
    public virtual Anamnesis Anamnesis { get; set; }

    . . .
}

public class Anamnesis
{
    [Key, ForeignKey("Student")]
    public int AnamnesisId { get; set; }

    public virtual Student Student { get; set; }

    . . .
}
Run Code Online (Sandbox Code Playgroud)

其中,学生是主要实体,Anamnesis是共享PK的实体.

现在我想创建的关系有一个Delete Rule = CASCADE.实际上,正在创建的关系具有Delete Rule = NO ACTION,如下图所示:

在此输入图像描述

如果我在"表格属性"窗口中手动删除此关系并使用"删除规则"="CASCADE"添加其他关系,则代码将按照我的预期允许我删除学生并且它具有相同ID的共享Anamnesis.

所以,这是我的问题:

有没有办法在我的类中使用Data Annotation(不是Fluent API),以便获得与CASCADE删除规则的关系?我更喜欢使用Data Annotation但是如果不可能的话,我会对使用它的一些Fluent API代码感到满意.

注意

我已经尝试了这篇文章中显示的Fluent API代码.它在我有双向属性的情况下不起作用.

cascade sql-server-ce cascading-deletes ef-code-first entity-framework-4.1

7
推荐指数
2
解决办法
1万
查看次数

SQL CE Replication的优秀演示在哪里?

有人可以指点我使用SQL CE进行SQL 2008 R2复制的演示或演练.

我们的想法是让客户端每天连接到我们的服务器并复制/同步他们的数据.

谢谢.

.net c# sql-server-2008 sql-server-ce

7
推荐指数
1
解决办法
1490
查看次数

使用Entity Framework Code-First方法在SQL CE 4中存储文件

我正在尝试将实体添加到SQL CE 4,它具有byte []类型的属性.从msdn我已经发现只有图像类型可以容纳大文件(在我的情况下,它们不是那么大,但仍然超过二进制类型8000字节的限制).这是模型:

public class TabModel
{
    [Key]
    public Guid Id { get; set; }

    public string Title { get; set; }
    public string Subtitle { get; set; }
    public string Artist { get; set; }
    public string Album { get; set; }
    public string Author { get; set; }
    public string TabAuthor { get; set; }
    public DateTime DateAdded { get; set; }

    [Column("file",TypeName="image")]
    public byte[] File { get; set; }

    public TabModel()
    {
        Id = Guid.NewGuid();
        DateAdded …
Run Code Online (Sandbox Code Playgroud)

c# sql-server-ce ef-code-first entity-framework-4.1

7
推荐指数
1
解决办法
4126
查看次数

EF4 Code First + SQL Server CE:以原子方式保存双向引用

我想保存一些具有双向关系的实体(两端的导航属性).这是通过2次调用来完成的context.SaveChanges().

[关于我的模型,映射以及我如何到达那里的完整细节都在折叠之后.]

public void Save(){

     var t = new Transfer();
     var ti1 = new TransferItem();
     var ti2 = new TransferItem();

     //deal with the types with nullable FKs first
     t.TransferIncomeItem = ti1;
     t.TransferExpenseItem = ti2;

     context.Transfers.Add(t);
     context.Operations.Add(ti1);
     context.Operations.Add(ti2);

     //save, so all objects get assigned their Ids
     context.SaveChanges();

     //set up the "optional" half of the relationship
     ti1.Transfer = t;
     ti2.Transfer = t;
     context.SaveChanges();
} 
Run Code Online (Sandbox Code Playgroud)

一切都很好,但如果在两次调用之间发生雷击,确保数据库不一致怎么样SaveChanges()

输入TransactionScope...

public void Save(){
    using (var tt = new TransactionScope())
    { …
Run Code Online (Sandbox Code Playgroud)

transactions sql-server-ce entity-framework-4 ef-code-first

7
推荐指数
1
解决办法
856
查看次数

SQL Server CE:如果存在则更新else插入

INSERT如果SQL Server CE数据库表中尚不存在,UPDATE如果它存在,我怎么能连续存在?

我已经尝试了很多SQL查询并不断收到错误.这不起作用.

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
    INSERT INTO Table1 VALUES (...)
Run Code Online (Sandbox Code Playgroud)

更新:

我发现这对我有用.任何其他好的建议都是受欢迎的.

    INSERT INTO Table1 VALUES (...)
    SELECT (........)
    WHERE NOT Exists (SELECT ........)
    -- INSERT with Default value if not exist. Next, UPDATE it
    UPDATE Table1 SET (...) WHERE Column1='SomeValue'
Run Code Online (Sandbox Code Playgroud)

sql sql-server-ce

7
推荐指数
1
解决办法
4630
查看次数

ASP.NET MVC 4 + Entity Framework 6 + SQL Compact Edition 4.0部署无需安装

我试图在安装了iis的Windows 7的干净安装上部署使用Entity Framework 6(Code First)和SQL Compact 4.0的基本MVC 4应用程序(未安装mvc 4和sql compact 4.0).

我在db项目上安装了以下nuget包:

  • EntityFramework(版本6.0.0-alpha2)
  • EntityFramework.SqlServerCompact(Version 6.0.0-alpha2)
  • Microsoft.AspNet.Providers(版本1.2)
  • Microsoft.AspNet.Providers.Core(1.2版)
  • Microsoft.SqlServer.Compact(版本4.0.8876.1)

在web.config中,我得到了以下配置:

<connectionStrings>
  <add name="[Name]" connectionString="Data Source=|DataDirectory|[FileName].sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>  

......................

<entityFramework>
  <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
     <parameters>
        <parameter value="System.Data.SqlServerCe.4.0" />
     </parameters>
  </defaultConnectionFactory>
  <providers>
      <provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)

Bin文件夹(sql ce文件位于amd64和x86文件夹中:

  • [AMD64]
  • [86]
  • Antlr3.Runtime.dll
  • DotNetOpenAuth.AspNet.dll
  • DotNetOpenAuth.Core.dll
  • DotNetOpenAuth.OAuth.Consumer.dll
  • DotNetOpenAuth.OAuth.dll
  • DotNetOpenAuth.OpenId.dll
  • DotNetOpenAuth.OpenId.RelyingParty.dll
  • EntityFramework.dll
  • EntityFramework.SqlServer.dll
  • EntityFramework.SqlServer.xml
  • EntityFramework.SqlServerCompact.dll
  • EntityFramework.SqlServerCompact.xml
  • EntityFramework.xml
  • Microsoft.Web.Infrastructure.dll
  • Microsoft.Web.WebPages.OAuth.dll
  • Newtonsoft.Json.dll
  • ShipMedProto.DB.dll
  • ShipMedProto.DB.pdb
  • ShipMedProto.Web.dll
  • ShipMedProto.Web.pdb
  • System.ComponentModel.DataAnnotations.dll
  • System.Data.DataSetExtensions.dll
  • System.Data.SqlServerCe.dll
  • System.Data.SqlServerCe.Entity.dll
  • System.Net.Http.Formatting.dll
  • System.Web.Helpers.dll
  • System.Web.Http.dll …

deployment sql-server-ce asp.net-mvc-4 entity-framework-6

7
推荐指数
2
解决办法
8973
查看次数