实体框架中的复合键与零或一到零或一个关系

时间:2017-09-03 18:05:00

标签: c# entity-framework-6

我有3个班级A,B和AB。 A类和B类都是相互独立的。但AB依赖于A和B.我希望使用实体框架代码优先实现A和B之间的“零或一对一或一”关系。

有人可以告诉我为什么这不起作用?还是我完全错了?谢谢!

id<MTLRenderCommandEncoder> encoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor];
encoder.label = @"Vertex Render Encoder";
[encoder setRenderPipelineState:metalVertexPipelineState];

// draw main content
NSUInteger vSize = _vertexInfo.metalVertexCount*sizeof(AAPLVertex);
id<MTLBuffer> mBuff = [self.device newBufferWithBytes:_vertexInfo.metalVertices
                                               length:vSize
                                              options:MTLResourceStorageModeShared];
[encoder setVertexBuffer:mBuff offset:0 atIndex:0];
[encoder setVertexBytes:&_viewportSize length:sizeof(_viewportSize) atIndex:1];
[encoder setFragmentTexture:self.inputTexture atIndex:0];
[encoder drawPrimitives:MTLPrimitiveTypeTriangle vertexStart:0 vertexCount:_vertexInfo.metalVertexCount];
[encoder endEncoding];

[commandBuffer presentDrawable:self.currentDrawable];
[commandBuffer commit];

我收到了这个错误:

  

AB_B_Source ::多重性在关系'AB_B'中的角色'AB_B_Source'中无效。由于Dependent Role属性不是关键属性,因此Dependent Role的多重性的上限必须为'*'。

     

AB_A_Source ::多重性在关系'AB_A'中的角色'AB_A_Source'中无效。因为Dependent Role属性不是关键属性,   依赖角色的多重性的上限必须是'*'。

1 个答案:

答案 0 :(得分:1)

根据编辑的模型,每个类(A和B)中的导航属性AB可能是问题,因为要指向AB对象,您需要同时使用两个键。 实体AB可能与复合主键映射,并且您应该已经使用该实体中的属性A和B定义了您想要的关系。

让我知道它是否有效, 祝你有愉快的一天