Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Linq到SQL遗留关系映射_Sql Server_Linq To Sql - Fatal编程技术网

Sql server Linq到SQL遗留关系映射

Sql server Linq到SQL遗留关系映射,sql-server,linq-to-sql,Sql Server,Linq To Sql,我正在尝试让Linq2SQL与我的旧数据库一起工作。我目前有一个notes表,它是一些不同实体的通用表,并映射了m:m。设计这个数据库的人没有为每个实体类型映射一个关系表,而是决定使用一个带有类型列的关系表(varchar讨厌!) 如何将Foo和Bar映射为Notes集合?这可能吗。我看不见光明。我尝试创建两个类FooNotes和BarNotes,它们继承自RelateNotes,然后将类型字段映射为描述符 这不起作用,我收到以下错误 Bad Storage property: '_Enti

我正在尝试让Linq2SQL与我的旧数据库一起工作。我目前有一个notes表,它是一些不同实体的通用表,并映射了m:m。设计这个数据库的人没有为每个实体类型映射一个关系表,而是决定使用一个带有类型列的关系表(varchar讨厌!)

如何将Foo和Bar映射为Notes集合?这可能吗。我看不见光明。我尝试创建两个类FooNotes和BarNotes,它们继承自RelateNotes,然后将类型字段映射为描述符

这不起作用,我收到以下错误

Bad Storage property: '_EntityID' on member 'TestLinq.BarNotes.EntityID'.
在意识到这不可能之前,我不想走得太远。我不允许对数据库做太多更改


<谢谢>,

< p>我会考虑扩展你的应用程序的设计,包括基于领域模型的分层架构。 通过这种方式,您可以创建一个满足系统需求的域模型,同时抽象出下面映射的工作方式。例如,可以为返回映射实体的数据访问层提供一个公共接口。可以为旧数据库中的旧“字符串相等”m2m关系创建此接口的实现。有一天,当您准备放弃旧数据库时,可以为不同的ER db模型创建一个新的实现,这将允许您的域模型(对象模型)和更高的层(服务、UI等)保持不变(因为它们都使用公共接口)


在对象模型中,您可以定义每个需要注释的对象,并让每个对象包含每个实例的注释集合。富有一套笔记;酒吧里有一系列的笔记。您的存储库接口将负责返回这些实体,但该repo的实现将担心如何读取并将其持久化到数据库。

我没有任何建议,但我很同情您,我在一个有特殊问题的地方工作(带有varchar类型列的notes表)遍布数十个应用程序和数据库。哦,(糟糕的)记忆……您是否可以“手动”在部分类中添加/创建/编码关系?可能不是性能最好的解决方案,但应该是可能的。我想我可以用存储过程来检索这样的集合。这正是我最终要做的。因为遗留数据库非常混乱,而且我没有被授权进行广泛的重构,所以我创建了许多域视图,并将其映射到我的linq实体。这已经消除了大部分头痛。