我正在使用 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 版本中导入该命名空间。有没有人看到该解决方案有任何问题?