我正在尝试在实体框架模型中定义两个实体之间的1:1关联(一个映射到表,另一个映射到视图 - 使用DefinedQuery).在设计器中尝试为此定义映射时,它会让我选择(1)表或视图来将关联映射到.我应该选择什么?我可以选择这两个表中的任何一个,但后来我被迫从该表(或视图)中为每个关系结束选择一列.我希望能够从一个表中选择一个列作为关联的一端,另一个表中的列作为关联的另一端,但是没有办法做到这一点.
在这里,我选择映射到"DW_ WF_ClaimInfo"视图,它迫使我从该视图中选择两列 - 一个用于关系的每一端.
我也尝试在XML中手动定义映射,如下所示:
<AssociationSetMapping Name="Entity1Entity2" TypeName="ClaimsModel.Entity1Entity2"
StoreEntitySet="Entity1">
<EndProperty Name="Entity2">
<ScalarProperty Name="DOCUMENT" ColumnName="DOCUMENT" />
</EndProperty>
<EndProperty Name="Entity1">
<ScalarProperty Name="PK_DocumentId" ColumnName="PK_DocumentId" />
</EndProperty>
</AssociationSetMapping>
Run Code Online (Sandbox Code Playgroud)
但是这给出了:错误2010:在MetadataWorkspace中不存在作为此MSL的一部分指定的列'DOCUMENT'.看起来它仍然希望两列都来自同一个表,这对我来说没有意义.
此外,如果我为每一端选择相同的密钥,例如:
<AssociationSetMapping Name="Entity1Entity2" TypeName="ClaimsModel.Entity1Entity2"
StoreEntitySet="Entity1">
<EndProperty Name="Entity2">
<ScalarProperty Name="DOCUMENT" ColumnName="PK_DocumentId" />
</EndProperty>
<EndProperty Name="Entity1">
<ScalarProperty Name="PK_DocumentId" ColumnName="PK_DocumentId" />
</EndProperty>
</AssociationSetMapping>
Run Code Online (Sandbox Code Playgroud)
然后我得到:
Error 3021: Problem in Mapping Fragment starting at line 675: Each of the following
columns in table AssignedClaims is mapped to multiple conceptual side properties:
AssignedClaims.PK_DocumentId is mapped to
<AssignedClaimDW_WF_ClaimInfo.DW_WF_ClaimInfo.DOCUMENT,
AssignedClaimDW_WF_ClaimInfo.AssignedClaim.PK_DocumentId> …
Run Code Online (Sandbox Code Playgroud) 我有一个继承层次结构,其中包含一个基本的Employee实体和一些用于特定员工类型的后代实体.我需要能够将基础Employee实体转换为更具体的实体(例如TemporaryEmployee),并从更具体的类型转换回基本类型(例如,如果员工不再是"临时"的话,那么我希望该实例只是持久化为Employee.在DB中,这只是在表中为特定子类添加或删除一行的问题.(我每个类都使用表.)虽然我没有看到如何使用EF调用.
我的商店在IIS 7上使用MVC3/FUBU.我最近投入了一些工作,我想使用日志解析器从IIS日志中收集指标.我以前做了很多次但是因为MVC3路由的形式是/ api/person //地址/日志保存/ api/person/123/address/456在uristem列中.
有没有人对如何从IIS日志中获取有关特定路由的数据有任何想法?
作为一个例子:日志像这样:
cs-uri-stem
/api/person/123/address/456
/api/person/121/address/33
/api/person/1555/address/5555
Run Code Online (Sandbox Code Playgroud)
输出如:总命中数= 3
我的应用程序中有各种类型的整数 ID(例如 ProductId、UserId 等),我想实现强类型,以便我可以确保将正确的 ID 类型传递给方法。
例如,我想声明GetProduct(productId: ProductId)
而不是GetProduct(productId: number)
只有 ProductId 类型的变量可以传递给它。
在我的 C 时代,我会使用 typedef - 例如 typedef ProductId int;
在 C# 中,我通过使用隐式转换为 int 运算符和显式转换为 int 运算符定义 ProductId 类来实现这一点。比 typedef 更麻烦,但它有效。
我想弄清楚如何在 Typescript 中做等效的事情。对于打字稿我试过这个:
export class ProductId extends Number {}
Run Code Online (Sandbox Code Playgroud)
但这仍然允许传递一个数字来代替 ProductId。
如何在 TypeScript 中实现这一目标?