当前位置: 首页 > 面试题库 >

是否可以在不拖放的情况下使用Linq-SQL?

慕嘉运
2023-03-14
问题内容

如果要使用Linq-SQL,还必须将DB Table拖到设计器表面以创建实体类。

我一直喜欢我的应用程序中的完全控制权,并且不喜欢dotnet创建的类。

是否可以使用我自己的数据访问层实体类在Linq和DB之间提供此连接?

我该如何完成?


问题答案:

您可以使用Linq-to-SQL非常轻松地编写自己的类-只需使用一些属性绘制类即可。

例如,这是我的一个项目中有一个非常简单的表,它可以很好地与Linq-to-SQL一起使用:

[Table(Name = "Categories")]
public class Category : IDataErrorInfo
{
    [Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
    public int Id { get; set; }
    [Column] public string Name { get; set; }
    [Column] public string ExtensionString { get; set; }
}

该代码非常简单,尤其是当您使属性名称与表名称对齐时(不必这样做)。

然后,您只需要一个html" target="_blank">存储库即可连接到数据库:

class CategoryRepository : ICategoryRepository
{
    private Table<Category> categoryTable;
    public CategoryRepository(string connectionString)
    {
        categoryTable = (new DataContext(connectionString)).GetTable<Category>();
    }
}

当然,它还有更多的功能,但这向您展示了非常基础的知识,一旦您理解它就不难做。这样,您可以100%地控制您的类,并且仍然可以利用Linq-to-SQL。

我从 Pro ASP.NET MVC框架 (一本很棒的书)中学到了这种方法。

如果您想了解更多内容,我的所有Linq-to-
SQL类都是从头开始在我的一个项目上编写的,您可以在这里浏览。



 类似资料:
  • 问题内容: 我正在评估JOOQ是否可在仍在开发中的新系统中使用。我想避免在与应用程序一起开发数据库时生成代码,而只是为该应用程序起持久存储的作用。因此,预计数据库模式定义将由Java代码(java中的表定义)驱动。 JOOQ是否适合上述用例?是否有用于模式定义的Java DSL? 问题答案: JOOQ是否适合上述用例? 是的,许多jOOQ用户仅使用运行时库,而没有代码生成器。入门指南中提供了示例。

  • 我正在评估JOOQ在一个仍在开发中的新系统中的使用情况。当数据库与应用程序一起开发时,我希望避免代码生成,而只是在这个应用程序中扮演持久存储的角色。因此,数据库模式定义应该由Java代码(Java中的表定义)驱动。 JOOQ是否适用于上述用例?是否有用于模式定义的JavaDSL?

  • 是否可以在没有实体的情况下使用JpaRepository?在这种情况下,将其替换为DTO。 如下示例所示 这种情况有替代方案吗? 注意:DTO已经映射,但我不想创建视图来将此DTO转换为实体。 我已经验证了这个主题,但没有重大进展,请使用无实体的JpaRepository交互样式 我在试这个 接口- 公共接口BffDTOInterface2{ } 我有这个错误

  • 例如,JPA标准API可以在没有生成元模型的情况下使用。失去了类型安全性,但我可以在运行时仅使用反射来创建查询,而无需事先了解数据模型。我想以同样的方式使用Querydsl。我不关心类型安全问题,因为我不知道数据模型。 在我最近的项目中,我想使用Querydsl,主要是因为它构成了持久性之上的另一层。所以我希望可以在JPA、JDO、JDBC、Lucene、Hibernate Search、Mong

  • 问题内容: 是否可以在不完全禁用JavaScript的情况下禁用AJAX? 问题答案: 如果您使用的是Firefox,则可以使用GreaseMonkey完成此操作。(https://addons.mozilla.org/en- US/firefox/addon/748 ) GM是用于将脚本应用于您访问的部分或全部页面的框架。我有禁用google- analytics下载的GM脚本(因为它们会使速度

  • 我想使用并使其直接进入给定的url,而不是从ribbon配置中获取主机。 我知道在Spring,cloud-feign默认与ribbon和eureka一起出现。 根据这个:https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-ribbon.html#spring-cloud-ribbon-without-eure