最近,我一直在阅读LINQ以开始实现它,并且有一个特别的问题,就是它如何生成令我困扰的更新查询。
使用UpdateCheck.Always,或自动创建实体代码,显然所有表的所有字段都将获得属性UpdateCheck.Always,--这意味着对于每次更新和删除查询,我都会得到如下所示的SQL语句:
UPDATE table SET a = 'a' WHERE a='x' AND b='x' ... AND z='x', ad infinitum
现在,称我为纯粹主义者,但对我来说,这似乎是极其低效的,而且无论如何,这感觉都是一个糟
我已经在WebMatrix中创建了一个使用SQL Server CE4.0的小型测试项目。由于不喜欢使用嵌入式SQL,我想为WebMatrix生成的SQL Server CE4.0数据库创建一些LINQ2SQL域类。不幸的是,SQLmetal抱怨数据库文件损坏或不兼容。
是否有与SQL Server CE4.0兼容的SQLmetal.exe版本,是否可以独立于Visual Studio下载?
提前谢谢。
我是新来的,所以你好。
我使用的是ASP.NET 4,我使用的是LINQ to SQL的数据控件。按照建议,我创建了一个DBML (LINQ to SQL Class Item),然后从SQL Server中拖动相关的表。然后我在我的代码中使用这个DBML和LINQ ie:
using (ProjectDataContext Data = new ProjectDataContext())
{
Order MyOrder = new Order();
}
这一切都运行得很好。我现在遇到了SQLMetal。我看不到这个工具
我有一个对参数进行验证的存储过程
例如。
IF @SearchType = 'BNa'
BEGIN
... DO something
END
ELSE IF @SearchType = 'SNa'
BEGIN
... DO something
END
因此,默认情况下,存储的Proc返回一个标量值,如果SearchType = IMultipleValues有效,它将返回一个Proc。
问题是,当我在SQL中删除存储的过程时,它会为一个只返回标量int的函数创建LINQ DataContext。它不理解Strored进程可以返回一个带有标量值和D
如果让数据访问远离业务层和表示层是很重要的,那么我可以采取什么替代或方法来让我的LINQ to SQL实体留在数据访问层?
到目前为止,我似乎只是简单地复制sqlmetal生成的类,并传递这些对象,而不是简单地保持两层的分离。
例如,我的数据库中有一个名为Books的表。如果用户通过UI创建一本新书,那么由sqlmetal生成的book类看起来非常适合,尽管我这样做是将我的设计紧密地结合在一起。
我正在尝试将我的rails the应用程序移植到C#(mono),并且我想使用相同的数据库。当我尝试使用sqlmetal创建Linq模式时,我会得到以下错误消息:
sqlmetal: System.ArgumentException: Don't know how to convert the SQL type 'name' into a managed type.
Parameter name: dataType
at DbLinq.Vendor.Implementation.SchemaLoader.MapDbType (System.String column
我正尝试在linq中进行连接,但是由于某些原因,我不能访问表的主键。似乎不被接受的是'h.ProjectId‘。将给出以下错误
CW1.SearchWebService.Bid does not contain a definition for 'ProjectId' and no extention method 'ProjectId' accepting a first argument of type 'CW1SearchWebService.Bid'
代码:
var allProjects = ctxt.Project.ToLis
现在我正在使用Visual Studio2010测试版探索LINQ-to-SQL。我现在正在尝试理解基础,没有从方案和sqlmetal自动生成的magics轻量级代码。我已经尝试了以下代码:
public class Database : DataContext
{
public Database( string s ) : base( s ) {}
public Table< DUser > items;
}
[Table( Name = "users" )]
public class Item
{
[Column
我有一个存储过程,它总是根据参数返回一行:
IF @bleh = 1
SELECT TOP 1 Xyz FROM Abc
ELSE
SELECT TOP 1 Def FROM Abc
我必须使用SqlMetal来生成DataContext,但是这个存储过程返回一个IMultipleResults,这是一个错误。相反,它应该返回一个ISingleResult...
如果删除If (发出单个SELECT调用),则会生成一个ISingleResult返回类型。
有什么想法吗?