我正在创建一个应用程序,以将数据从一个数据库传输到另一个数据库,以适应新的应用程序,而且我遇到了一个问题,即访问旧数据库中的一些数据。旧数据库是使用Ruby on Rails创建的,它们是通过Rails设计和创建的,SQL Server中的数据库没有主键,所有列都可以为空。新数据库是在SQL Server中设计和构建的,具有适当的键和可空列。由于这两个数据库都在SQL Server中,因此我希望使用实体框架数据库优先进行数据转换。无法访问没有主键的实体框架表
在EF Desginer中,我能够将实体键分配给除一个(响应)之外的所有表,这使我无法正确访问表中的数据。表定义如下:
assess_id [int] NULL
person_id [int] NULL
question_id [int] NULL
question_version [int] NULL
answer_id [int] NULL
answer_version [int] NULL
text [nvarchar(4000)] NULL
created_at [datetime] NOT NULL
updated_at [datetime] NOT NULL
由于允许的记录的主键应包括
assess_id
person_id
question_id
question_version
answer_id
answer_version
但可以存在多个answer_id和answer_version记录到相同的question_id和question_version或answer_id和answer_version都是空的,所以我不能使用它。该密钥的任何子集都不允许我正确检索所有数据。另外,我不能使用created_at或updated_at列,因为有多个正在使用相同时间戳写入的行的实例。
我只需要读取数据而不是写入数据,因为它正在转换到新的数据库中,并且我无法更改现有的数据库。有没有解决关键问题的方法?
我没有能力对现有数据库进行任何修改,我正在尝试读取。 –
@Evan请参阅editted答案。 –