【问题标题】:Entity Namespace does not appear in Silverlight project实体命名空间未出现在 Silverlight 项目中
【发布时间】:2015-01-27 02:26:31
【问题描述】:

我有一个 Silverlight Web 项目,我在其中应用了 MVVM 模式。在我的整个解决方案中,我有 4 个项目。

项目“A3”,其中包含我的所有视图和视图模型。

Project“A3.Web”,里面包含了我主要的html文件、图片、声音文件等

项目“A3Lib”,其中包含我创建的 XAML 绑定转换器和其他有用的类。

项目“A3Lib.Web”,其中包含数据模型和领域逻辑。

我所有的实体模型都在我的 DataModels 文件夹中,我的所有域服务服务器端代码都在 DomainLogic 文件夹中。我在 DataModels 文件夹中创建了一个名为“Common”的新文件夹。

因此,当我想将数据模型添加到我的 VM 时,我尝试了“使用 A3Lib.Web.DataModels.Common;”并且没有找到命名空间。

问题:当我将新文件夹和新实体模型添加到 DataModels 文件夹时,我在“A3”项目中的 View 或 ViewModel 中看不到命名空间。

但是,我已经有现有代码(由其他人添加)并且他添加的模型显示得非常好(在视图或 VM 中使用......时)。

我检查了 web.config 以确保连接字符串在那里并且是正确的。我还尝试向项目的基类(其他上下文所在的位置)添加一个全新的上下文,但这没有帮助。我的项目根本无法解析或查看我创建的数据模型命名空间。

谢谢

尤拉

【问题讨论】:

    标签: silverlight mvvm namespaces models ria


    【解决方案1】:

    Silverlight 应用程序通过生成的代码从服务器端项目中查看模型和命名空间 - 您应该在 A3Lib 项目的 Generated_Code 文件夹中看到它。如果它不存在,则不会在构建时生成代理类。需要检查的几件事:

    1. 类不是私有的(嘿 - 有时是简单的事情)
    2. 如果使用域服务,服务需要至少有 1 个返回 IQueryable 或 IEnumerable 的方法(即使方法返回 null)才能在 Silverlight 端域上下文中查看类
    3. 如果该类只是您要与客户端共享的实用程序类,请将文件另存为 classname.shared.cs,代理将获取它。
    4. 确保项目引用指向项目,而不是(可能较旧)其他位置的 .dll。

    根据提供的信息,这就是我所获得的全部信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-14
      • 2016-03-02
      • 2013-12-19
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-26
      相关资源
      最近更新 更多