Winforms 在Windows窗体应用程序中使用ASP.NET MVC模型类

Winforms 在Windows窗体应用程序中使用ASP.NET MVC模型类,winforms,asp.net-mvc-3,Winforms,Asp.net Mvc 3,是否可以在Windows窗体应用程序中使用ASP.NET MVC模型类?我从Windows窗体应用程序中引用了ASP.NET MVC项目的.dll文件,并且成功地调用了模型。然而,当我试图构建项目时,错误突然出现,说ASP.NET MVC项目的名称空间找不到,即使引用是完整的 下面是Windows窗体应用程序“BeerRecommitederHelper”中的一个问题类,它引用了ASP.NET MVC 3项目“BeerRecommiteder”中的类: 使用系统; 使用System.Collec

是否可以在Windows窗体应用程序中使用ASP.NET MVC模型类?我从Windows窗体应用程序中引用了ASP.NET MVC项目的.dll文件,并且成功地调用了模型。然而,当我试图构建项目时,错误突然出现,说ASP.NET MVC项目的名称空间找不到,即使引用是完整的

下面是Windows窗体应用程序“BeerRecommitederHelper”中的一个问题类,它引用了ASP.NET MVC 3项目“BeerRecommiteder”中的类:

使用系统;
使用System.Collections.Generic;
使用System.Data.Entity;
使用System.Linq;
使用Beerreder.模型;
名称空间beerreCommanderHelper.Models
{
公共类BeerRecommitederHelperContext:BeerRecommiteder.Models.BeerRecommitederContext
{
公共数据库集首选项{get;set;}
公共数据库集建议{get;set;}
公共数据库集统计信息{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
SetInitializer(新的BeerRecommitedInitializer());
基于模型创建(modelBuilder);
}
}
}

是的,如果您的模型类位于单独的项目中,并且该项目不包含任何特定于MVC或web项目的引用,则您可以在winform项目中自由使用这些模型。如果两个项目使用相同的“后端”逻辑,我会建议这是一个好方法


构建项目时会出现哪些错误?

它说“找不到类型或命名空间(是否缺少using指令或程序集引用”)。我有using指令,在它尝试编译之前,它能够找到它。你能发布这个类吗?还包括您在模型中的用法。我刚刚编辑了这个问题,以包含一个有问题的类。您的模型中是否需要System.Web?另外,您在winform应用程序中使用的是哪个版本的.Net?您是否已将对System.Data.Entity的引用添加到winform应用程序中?我不需要System.Web。我把它拿走了。根据项目属性,目标框架为“.NET framework 4客户端配置文件”。是的,winform应用程序中存在对System.Data.Entity的引用。
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using BeerRecommender.Models;

namespace BeerRecommenderHelper.Models
{
    public class BeerRecommenderHelperContext : BeerRecommender.Models.BeerRecommenderContext
    {

        public DbSet<Preference> Preferences { get; set; }
        public DbSet<Recommendation> Recommendations { get; set; }
        public DbSet<Statistic> Statistics { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            Database.SetInitializer(new BeerRecommenderInitializer());

            base.OnModelCreating(modelBuilder);
        }
    }
}