首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DbLinq DbMetal -添加外键时“给定键不在字典中”

DbLinq DbMetal -添加外键时“给定键不在字典中”
EN

Stack Overflow用户
提问于 2012-11-09 08:05:43
回答 1查看 465关注 0票数 0

这是我的初始SQLite数据库

代码语言:javascript
复制
CREATE TABLE [Categories] (
  [ParentId] INT, 
  [Name] VARCHAR(100));

CREATE TABLE [Fees] (
  [CategoryId] INT, 
  [Name] VARCHAR(100), 
  [Value] VARCHAR(50), 
  [Info] VARCHAR(200));

CREATE TABLE [Markups] (
  [CategoryId] INT, 
  [UpTo] MONEY, 
  [Value] VARCHAR(50), 
  [Info] VARCHAR(200));

如果我运行DbMetal /provider:Sqlite /conn "Data Source=bms4.db3" /dbml:Model.dbml,它将成功创建dbml文件。

但是如果我添加一个外键,这样

代码语言:javascript
复制
CREATE TABLE [Fees] (
  [CategoryId] INT CONSTRAINT [fk_fees_categories] REFERENCES [Categories]([rowid]), 
  [Name] VARCHAR(100), 
  [Value] VARCHAR(50), 
  [Info] VARCHAR(200));

运行相同的命令

代码语言:javascript
复制
DbMetal /provider:Sqlite /conn "Data Source=bms4.db3" /dbml:Model.dbml

将显示此错误:

代码语言:javascript
复制
>>> Reading schema from SQLite database
DbMetal: The given key was not present in the dictionary.

如何在DBML中引入外键关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-09 08:11:33

根据约束中的唯一键检查外键。您尚未声明主键或唯一键,因此需要从声明开始(最好确保每个表都有一个主键)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13300114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档