【问题标题】:How do I include a third party SQL table into a asp.net code first web application?如何将第三方 SQL 表包含到 asp.net 代码优先 Web 应用程序中?
【发布时间】:2015-08-18 04:10:50
【问题描述】:

如果能够访问由代码首先生成的同一个 ApplicationDbContext 中的第三方表,那就太好了。但最终我真的希望能够在 linq 查询中加入表,该查询转换为单个 sql 查询(不希望它进行两次数据库调用,因为我正在加入两个数据库上下文)

该表是从第三方购买的邮政编码表。它没有代码首先需要的唯一 ID,所以我猜我必须给它一个?

【问题讨论】:

  • 第三方表是如何添加到你的数据库中的?你在使用 Code FIrst Migrations 吗?
  • 是我在Sql Server Management Studio中运行的sql脚本

标签: asp.net sql-server entity-framework ef-code-first code-first


【解决方案1】:

如果您不使用 Code First 迁移来管理数据库,则可以只为邮政编码表创建一个模型。表的 EF 模型和表本身不一定要匹配,因此您可以创建一个类来表示邮政编码表记录,并为邮政编码实体设置一个键,即使数据库表本身不匹配有一个。您必须确保选择的密钥是唯一的,否则您会得到意想不到的结果。

如果您使用 Code First 迁移,同样适用,但您也可以在 DbMigrationDbMigrationsConfiguration.Seed 中运行 SQL 脚本本身。

【讨论】:

  • 如果我将它作为 dB 迁移运行,它会为我创建类吗?你能把我和你的意思联系起来吗?非常感谢。
  • @masteroleary:dbmigration 不会用于创建类,我正在考虑使用代码优先迁移创建数据库其余部分的情况。在这种情况下,不是每次需要重新创建数据库时都在 SSMS 中运行 SQL 脚本,而是可以让脚本在种子函数中或在迁移期间运行。无论如何,由于您首先编写代码,因此您仍然需要创建类。
  • 好的。添加新项目时,我看到它们是 ado.net 实体模型、ef 上下文类型器、链接到 sql 类的几个选项。我认为这些选项之一将用于从现有表中生成一个类,这样数据类型就可以匹配,而无需我手动编写玻璃。 Linq to sql 可以做到这一点,但不会在我的代码优先模型创建的现有 dB 上下文中添加类。估计不能那样做。
猜你喜欢
  • 2013-06-20
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多