0

我正在使用 MVC WebAPI 为 silverlight 应用程序提供动力。POCO 对象在 MVC 和 Silverlight 之间共享。所有的 POCO 都在一个 .Net 类库中,我创建了一个 Silverlight 类库,所有的 POCO 都添加为链接,以便我可以共享代码。不幸的是,这会导致数据注释出现问题,因为 Silverlight 类库无法引用 EntityFramework.dll,因此无法编译 [ForeignKey] 等属性。

我最终像这样包装了我的所有注释:

#if !SILVERLIGHT
        [ForeignKey("SecurityGroupID")]
#endif
        public virtual SecurityGroup SecurityGroup { get; set; }

有没有人想办法不让#if !SILVERLIGHT 包装他们的所有注释?([列]、[表]、[外键]等?)。

我考虑过的一种可能的解决方案是在子命名空间 (MyProject.FakeAttributes) 中创建具有匹配构造函数的空白属性,并在 Silverlight 版本中导入该命名空间。有没有人看到该解决方案有任何问题?

4

1 回答 1

1

我不得不建议不要在 Silverlight 中使用您的实体。由于对象图中的延迟加载和循环等问题,实体通常不能很好地与 WCF 配合使用。帮自己一个忙,做 dtos。

如果你不打算使用 dtos。#ifs在我制作假属性之前,我会选择。

于 2012-08-16T17:06:26.553 回答