【发布时间】:2011-02-26 15:11:37
【问题描述】:
我正在尝试使用 LINQ-to-SQL 将我的应用程序连接到 SQLite 数据库,到目前为止一切正常。唯一的问题是我使用的 SQLite 提供程序不支持代码生成(除非我做错了什么),所以我手动编写了数据库中的 4 个表。
解决方案正确构建,但无法运行,给我错误消息
在类型“Item”上找不到键“ItemType_Id”的键成员“ItemType_Id”。
键可能是错误的,或者“项目”上的字段或属性已更改名称。
我已经检查并再次检查了数据库和属性映射中的拼写和字段名称,但没有发现任何问题。
表的 SQL 如下所示:
CREATE TABLE [Items] (
[Id] integer PRIMARY KEY AUTOINCREMENT NOT NULL,
[Name] text NOT NULL,
[ItemType_Id] integer NOT NULL
);
还有我的映射代码:
[Table(Name="Items")]
class Item {
// [snip]
[Column(Name = "Id", IsPrimaryKey=true, IsDbGenerated=true)]
public int Id {
get;
set;
}
// [snip]
[Column(Name="ItemType_Id")]
public int ItemTypeId {
get;
set;
}
[Association(Storage = "_itemType", ThisKey = "ItemType_Id")]
public ItemType ItemType {
get {
return _itemType.Entity;
}
set {
_itemType.Entity = value;
}
}
private EntityRef<ItemType> _itemType;
// [snip]
}
这真的是我第一次探索 LINQ-to-SQL,我边走边学,但我似乎无法解决这个看似简单的问题。
为什么 LINQ 看不到我的关联?
【问题讨论】:
标签: c# linq-to-sql .net-3.5