Tag: sql server

动态转换以避免C#语法错误

请考虑以下数据库表(SQL Server 2005)。 我想在EF(v6,.net 4.5.1)中使用它与翻译function,但搜索后似乎不支持。 CREATE TABLE Foo ( pk INT NOT NULL PRIMARY KEY, Foo VARCHAR(100) ) 使用按惯例映射,该映射将使用C#语法不支持的属性Foo创建类Foo 。 我尝试使用ColumnAttribute : public partial class Foo { [Key] public virtual int pk {get;set;} [Column(“Foo”)] public virtual string Name {get;set;} } 这似乎工作,但我想通过存储过程和MARS使初始页面请求加载数据(并使用通用结构,以便我可以在其他页面上重用它),所以我调用存储过程并循环通过结果集,通过reflection调用ObjectContext.Translate (类似于下面,但这是缩写): var methTranslate = typeof(ObjectContext).GetMethod(“Translate”, new[] { typeof(DbDataReader), typeof(string), typeof(MergeOption) }); foreach (var className […]

如何从EF LINQ查询中调用DB函数?

在我的数据库中,我定义了一些函数,假设它叫做fnTest 。 是否可以从我的LINQ / EF查询中调用该函数? 像这样的东西: var param3, param4; var res = (from x in db.Something where x.field1 > 0 orderby fnTest(x.f1, x.f2, param3, param4) select x).Take(20); 如您所见,我需要在DB端执行该函数,因为我需要使用它返回的值对数据进行排序。 前两个参数是表中的字段,后两个参数是一些将在程序中更改的数字,但对于每个查询将是常量。 是否有可能以某种方式调用已在DB中创建的函数? 或者我需要使用这样的东西: ((IObjectContextAdapter) context).ObjectContext.CreateQuery 并手动编写查询?

在SQL Server表中转储SSIS USER变量名称和值

目的:获取SSIS包中的所有用户变量,并在SQL Server 2008表中写入变量名称及其值。 我尝试了什么:我有一个小的“脚本任务 ”工作来显示变量名称及其值。 该脚本如下。 using System; using System.Data; using Microsoft.SqlServer.Dts.Runtime; using System.Windows.Forms; namespace ST_81ec2398155247148a7dad513f3be99d.csproj { [System.AddIn.AddIn(“ScriptMain”, Version = “1.0”, Publisher = “”, Description = “”)] public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase { #region VSTA generated code enum ScriptResults { Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success, Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure }; #endregion public void Main() { Microsoft.SqlServer.Dts.Runtime.Application app […]

转义转义字符不起作用 – SQL LIKE运算符

我使用\作为LIKE运算符的escape character 。 我正在逃避四个角色 1 % 2 [ 3 ] 4 _ 当我将转义字符作为输入传递时,查询不返回值。 我怎样才能使它工作? 数据插入 DECLARE @Text VARCHAR(MAX) SET @Text = ‘Error \\\ \\ C:\toolbox\line 180’ INSERT INTO Account (AccountNumber,AccountType,Duration,ModifiedTime) VALUES (198,@Text,1,GETDATE()) 码 static void Main(string[] args) { string searchValue1 = @”Error \\\ \\ C:\toolbox\line 180″; string searchValue2 = @”55555″; string result1 = DisplayTest(searchValue1); string […]

SQL Server连接字符串

我猜你得到了上百个问题,但是这里有: 因此,我正在尝试使用霍尼韦尔Dolphin 6100移动设备(CE5.0,.NET Compact Framework)与我正在开发的机器上安装的SQL Server Express 2008数据库进行通信。 我是SQL Server和移动开发的完全新手,在C#中我仍然有点绿色(是的,我知道,在这里跳得很深,是吗?:D) 到目前为止我有: string sConnection = @”Data Source=JEZ-LAPTOP;DataBase=EMS_Main;Integrated Security=SSPI;”; SqlConnection sqc = new SqlConnection(sConnection); sqc.Open(); 该应用程序非常愉快地部署到6100,但最后一行出现了一个模糊的“SQL Exception”错误。 我已经尝试更改数据源以包括实例名称,斜杠和点之前等(即使服务器只是使用默认实例),无济于事。 我可以毫无问题地连接到Management Studio中的数据库。 那么,连接字符串是错误的,还是我在SQL Server中没有正确完成的? 提前致谢。 这个网站真棒,一些知识渊博的家伙。

使用byte作为主键数据类型

我正在使用entity framework代码优先。 我有一个表不会超过100行,我想使用数据类型byte (SQL Server中的tinyint )作为主键。 这是我到目前为止: [Key] public byte Id { get; set; } 问题是当Entity Framework创建数据库时,它没有设置允许行在插入时自动递增的标识规范属性。 如果我将数据类型更改为Int16 (SQL Server中的smallint ),一切都很完美。 有没有办法告诉entity framework设置自动增量属性,还是一个字节不能用作entity framework代码优先的主键?

多重约束违反了entity framework5

你好我有3个类Person,UserProfile(它inheritance了Person)和Results,一个Person可以有一个或多个结果,当我尝试将ia结果添加到一个人时ai得到标题中提到的错误,我的类是下面的。 任何帮助,将不胜感激。 [Table(“People”)] public class Person : IPerson { [Key] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string Name { get { return FirstName + ” ” + LastName; } set{} } public string Email { get; set; } […]

使用include不会改变行为

有人可以帮我澄清之间的区别: var query = awlt.People.Include(p => p.EmailAddresses) .Where(p => p.LastName.Equals(lastName)) .SelectMany(a => a.EmailAddresses) .Select(a => a.EmailAddress1); var query = awlt.People .Where(p => p.LastName.Equals(lastName)) .SelectMany(a => a.EmailAddresses) .Select(a => a.EmailAddress1); 在两种情况下我都得到相同的结果而不知道差异。 Eager Loading是否需要使用Include ?

使用Attach方法无法更新数据库

我正在尝试学习LINQ to SQL。 我已经成功实现了insert方法,并且数据被插入到数据库中。 当我尝试更新现有数据时,即使没有exception,它也不会反映在数据库中。 你能否说一下可能出错的地方? 注意:AccountNumber是主键 编辑 以下代码行使其工作。 但是,你能解释为什么我们需要刷新吗? accountRepository.UpdateChangesByAttach(acc1); accountRepository.RefreshEntity(acc1); accountRepository.SubmitChanges(); 注意: DataContext.Refresh method refreshes object state by using data in the database. 刷新是使用KeepCurrentValues选项完成的。 据我所知,它将保留我在实体对象中更新的值。 我(仅)提供需要在数据库中更新的所需信息。 是否需要刷新才能获得剩余的列值? 客户 using (var context = new RepositoryLayer.LibraryManagementClassesDataContext(connectionstring)) { context.Log = Console.Out; RepositoryLayer.Repository selectedRepository = new RepositoryLayer.Repository(); //selectedRepository.Context = context; AccountBusiness accountBl = new AccountBusiness(selectedRepository); //Transaction 1 […]

如何在C#中将byte 转换为datetime?

我在数据库中有一个TimeStamp类型的字段,它在c#代码的byte []中转换,我需要将它转换为DateTime值。 所以我想从一个字节数组转换为DateTime。 已经使用过这段代码: byte[] byteValue = someValue; long longVar = BitConverter.ToInt64(byteValue); DateTime dateTimeVar = DateTime.FromBinary(longVar); 这个可以吗?