标签: linq-to-sql

INSERT语句发生冲突

我在C#Winforms 2010中的项目并使用SQL Server express和Linq-to-SQL.我的项目让我异常:

INSERT语句与CHECK约束"CK_BarCode_Num"冲突.冲突发生在数据库"停车",表"dbo.TBL_Cards",列'BarCode_Num'

当我运行此查询时:

SELECT name, definition
FROM sys.check_constraints
WHERE name = 'CK_BarCode_Num'"
Run Code Online (Sandbox Code Playgroud)

输出显示以下定义:

Name: CK_BarCode_Num    
Definition: (datalength([BarCode_Num])=(13))"
Run Code Online (Sandbox Code Playgroud)

但在TBL_Cards数据库中,类型BarCode_Numvarchar(100)和后面的代码,我声明int的类型BarCode_Num.

我不知道在哪里设置datalength([BarCode_Num])=(13)

c# sql database linq-to-sql winforms

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

LINQ:单个谓词中的多个LIKE子句

我想做一个可以将多个变量与单个字符串进行比较的LINQ查询.我已经看过LINQ for LIKE查询数组元素,它很有用,但并不完全.我需要反过来.

我想做的是以下内容:假设我有Company两个Name和的对象Address.我也有一个字符串keyword.然后,我想找到所有Company的列表具有S keyword在任何他们NameAddress.在SQL中它会......

SELECT * FROM Company
WHERE Name LIKE '%keyword%' OR Address LIKE '%keyword%'
Run Code Online (Sandbox Code Playgroud)

我一直在使用Entity Framework,我尝试了以下内容:context.Companies.Where(x => new string[] { x.Name, x.Address }.Contains(keyword),以及context.Companies.Where(x => new string[] { x.Name, x.Address }.Any(r => r.Contains(keyword)),但都没有成功.第一个给了我一个IN条款,第二个给了我......我不知道它做了什么,但它没有给我我想要的东西.

对不起,我对表达式还没有非常深入的了解(还); 我希望我能够从头开始编写我自己的自定义表达式,但是我还不能抓它 ...有人可以帮助我这个吗?

c# sql linq entity-framework linq-to-sql

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

查询结果不能多​​次枚举

请考虑以下方法.我被问到异常,而转发器绑定.

Bindrepeater:

private void BindRepeater()
{
    var idx = ListingPager.CurrentIndex;
    int itemCount;
    var keyword = Keywords.Text.Trim();
    var location = Area.Text.Trim();
    var list = _listing.GetBusinessListings(location, keyword, idx, out itemCount);
    ListingPager.ItemCount = itemCount;
    BusinessListingsRepeater.DataSource = list.ToList(); // exception here
    BusinessListingsRepeater.DataBind();
}
Run Code Online (Sandbox Code Playgroud)

GetBusinessListings:

public IEnumerable<Listing> GetBusinessListings(string location, string keyword, int index, out int itemcount)
{
    var skip = GetItemsToSkip(index);
    var result = CompiledQueries.GetActiveListings(Context);
    if (!string.IsNullOrEmpty(location))
    {
      result= result.Where(c => c.Address.Contains(location));
    }
    if (!string.IsNullOrEmpty(keyword))
    {
        result = result.Where(c => c.RelatedKeywords.Contains(keyword) || c.Description.Contains(keyword));
    }
    var …
Run Code Online (Sandbox Code Playgroud)

c# exception linq-to-sql

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

从Telerik扩展网格获取分页,过滤并传递给存储过程

我想使用MVC网格过滤,但不想使用linq.当前示例使用linq进行过滤.但是,我想将过滤选项传递给存储过程.你有一个例子吗?

我已经看到了Telerik扩展网格的示例,其中内部控制器在使用GridActionAttribute和GridModel从数据库接收所有记录后过滤记录.

[GridAction]
    public ActionResult _Paging()
    {
        return View(new GridModel<Order>
        {
            Data = GetOrders()
        });
    }
Run Code Online (Sandbox Code Playgroud)

我想在执行数据库查询之前使用此过滤器,分页信息.所以我将只从数据库中获取pagesize记录.不是整个数据库记录来过滤它(使用storedproc).另外,从数据库LINQ或ENTLIB DAL获取记录的最佳做法是什么.

linq-to-sql telerik-mvc asp.net-mvc-4 kendo-ui mvcextensions

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

Linq to Sql:仅选择DB2-table2上不存在的DB1-table1中的项目

我一直在研究如何在ac#project中正确实现bellow任务.

它被预先考虑到......

获取特定数据库表(db1)中存在但在其他特定数据库表(db2)上不存在的所有数据

两个表都有共同的ID

我已经面临很多关于此的帖子,但似乎没有解决我的问题.有帮助吗?

编辑:

Select all data 
on table_x from database_x 
Where item_id from table_x are not found inside table_y from database_y
Run Code Online (Sandbox Code Playgroud)

=>以列表格式返回数据

c# multi-database linq-to-sql

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

Linq到sql表达式树执行区问题

我有一个问题,想知道是否有办法吃蛋糕并吃掉它.

目前我有一个存储库和查询样式模式,我如何使用Linq2Sql,但我有一个问题,我看不到一个很好的方法来解决它.以下是问题的示例:

var someDataMapper = new SomeDataMapper();
var someDataQuery = new GetSomeDataQuery();
var results = SomeRepository.HybridQuery(someDataQuery)
                            .Where(x => x.SomeColumn == 1 || x.SomeColumn == 2)
                            .OrderByDescending(x => x.SomeOtherColumn)
                            .Select(x => someDataMapper.Map(x));

return results.Where(x => x.SomeMappedColumn == "SomeType");
Run Code Online (Sandbox Code Playgroud)

这里要注意的主要部分是Mapper,Query,Repository,然后是最后的where子句.我这样做是作为一个更大的重构的一部分,我们发现有很多类似的查询得到稍微不同的结果集,但然后将它们以相同的方式映射到特定于域的模型.因此,例如,取回a tbl_car然后将其映射到Car对象.因此,映射器基本上采用一种类型并吐出另一种类型,因此与选择中通常发生的情况完全相同:

// Non mapped version
select(x => new Car 
{
    Id = x.Id,
    Name = x.Name,
    Owner = x.FirstName + x.Surname
});

// Mapped version
select(x => carMapper.Map(x));
Run Code Online (Sandbox Code Playgroud)

因此,汽车映射器在所有区域上都可以重复使用,这些区域执行类似的查询,返回相同的最终结果,但在此过程中执行不同的位.但是我一直得到错误,说Map无法转换为SQL,这很好,因为我不希望它,但是我理解,因为它在表达式树中它会尝试转换它.

{"Method 'SomeData Map(SomeTable)' has no supported translation to SQL."}
Run Code Online (Sandbox Code Playgroud)

最后,返回并映射的对象在堆栈中进一步传递给其他对象使用,这使用Linq …

c# sql linq expression-trees linq-to-sql

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

在sql中选择中间行

我在我的SQLServer数据库中有一个表,其中有几乎100K的记录,还有一个Web应用程序,我想在其中显示这些行的分页gridView表示.显然,我应该过滤行并将其中的一小部分返回给客户端(因为Web上的Ajax性能).

这是我的主要问题.选择中间行的最佳方法是什么?例如,如何选择#50000到#50010的行?是否有类似于select top 10select bottom 10从表行中间选择行的方法.

我在.NET MVC Web应用程序中使用linq2sql,也可以编写SQL StoredProcedures代码.

任何建议将不胜感激.

sql datagrid linq-to-sql

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

SQL'时间'C#等价 - System.TimeSpan不起作用

好吧,我正在尝试从数据库中检索数据,列名为'EventTime',数据类型为time(7),以下是我的C#代码:

[Column(IsDbGenerated = true)]
public TimeSpan EventTime { get; set; }
Run Code Online (Sandbox Code Playgroud)

我一直在搜索,似乎TimeSpan确实相当于时间,但是,当我尝试运行该代码时,它仍会导致异常,所有其他列加载都很好

有没有人遇到类似的问题?

编辑:这是"10:34:00"栏中的数据样本

我可用的唯一异常细节是模糊的:"异常详细信息:System.InvalidCastException:指定的强制转换无效." MSDN指定TimeSpan是适当的数据类型http://msdn.microsoft.com/en-us/library/ms131092.aspx?PHPSESSID=lm71lj7i6gj5fjtebtb2srl4n3

.net c# sql-server linq-to-sql

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

LINQ-to-SQL中的无效对象名称

我有一个SQL Server数据库,我刚刚添加了一个新表: -

CREATE TABLE [dbo].[my_table](
    [my_primary_key] [int] NOT NULL,
    [my_data_value] [int] NULL,
PRIMARY KEY CLUSTERED 
(
    [my_primary_key] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

我将新表从Visual Web Developer中的Database Explorer拖到my_schema.dbml设计窗口中.这为我创建了一个my_schema.vb文件: -

Partial Class my_schemaDataContext

End Class
Run Code Online (Sandbox Code Playgroud)

虽然表格的某些痕迹确实出现在XML中: -

<?xml version="1.0" encoding="utf-8"?><Database Name="my_schema" Class="my_schemaDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
  <Connection Mode="AppSettings" ConnectionString="Data Source=MYPC;Initial Catalog=my_schema;Integrated Security=True" SettingsObjectName="MyProgram.My.MySettings" SettingsPropertyName="my_schemaConnectionString" Provider="System.Data.SqlClient" />
  <Table Name="dbo.my_table" Member="my_tables">
    <Type Name="my_table">
      <Column Name="my_primary_key" Type="System.Int32" …
Run Code Online (Sandbox Code Playgroud)

vb.net sql-server visual-web-developer linq-to-sql

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

使用Singleton模式到Linq到Sql数据上下文

我在Linq to SQL中有一些困惑.我正在寻找数据上下文类有时会给出以下异常的实际原因.

"已经有一个与此命令关联的开放式数据读取器必须先关闭

特别是在多任务环境中.大多数人都说,原因是,数据上下文不是线程安全.所有建议使用DataContex作为每个单元的工作.

请参考以下主题以获得最佳答案

跨多个线程的Linq-to-SQL数据上下文

但在我的情况下,我正在使用另一个类调用"A",它以Singleton模式实现.这个类的用途是,以单例方式提供数据上下文对象.我维护此类"A"的实例作为派生的全局实例类和使用特定实例调用Datacontex.

我的问题是,

我的方法调用会导致无法控制的内存增长吗?根据我的理解,单例将一个实例保持为静态对象.如果我的假设是错误的,请给我很好的解释.

注意:

我的方法调用的任何方式也抛出相同的异常.所以我相信在这种情况下也会发生同样的问题.

c# linq multithreading design-patterns linq-to-sql

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