在WCF服务上具有数据访问权限的MVC项目

时间:2014-12-04 14:57:13

标签: asp.net-mvc entity-framework wcf

我知道这听起来很奇怪。 我正在做一个锻炼项目:一个简单的资金经理。 这是数据库图表:

enter image description here

我开始创建一个包含所有数据访问方法的WCF服务。 这是文件夹结构:

enter image description here

在Model文件夹中,有类似MVC项目的类。

这里是Service.svc:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using WCFServices.Money.Model;

namespace WCFServices.Money
{
    // NOTA: è possibile utilizzare il comando "Rinomina" del menu "Refactoring" per modificare il nome di classe "Service" nel codice, nel file svc e nel file di configurazione contemporaneamente.
    // NOTA: per avviare il client di prova WCF per testare il servizio, selezionare Service.svc o Service.svc.cs in Esplora soluzioni e avviare il debug.
public class Service : IService
{
    MoneyEntities db = new MoneyEntities();

    #region Methods to get items name by Id

    public string GetAccountNameById(long id)
    {
        return db.Accounts.Find(id).Name;
    }

    public string GetBeneficiaryNameById(long id)
    {
        return db.Beneficiaries.Find(id).Name;
    }

    public string GetCategoryNameById(long id)
    {
        return db.Categories.Find(id).Name;
    }

    public string GetProjectNameById(long id)
    {
        return db.Projects.Find(id).Name;
    }

    public string GetSubcategoryNameById(long id)
    {
        return db.Subcategories.Find(id).Name;
    }

    public string GetTimeUnitNameById(long id)
    {
        return db.TimeUnits.Find(id).Name;
    }

    #endregion

    // And so go on...
}

}

你可以看到它非常简单。

创建添加了服务引用的MVC项目之后。 现在我想为Transactions表创建一个Controller,但是在DbContext选择器中我找不到在WCF服务中创建的DbContext。

所以我在MVC项目中也创建了一个MoneyEntities.cs,它看起来像:

using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Web;

namespace Money.Model
{
    public class MoneyEntities : DbContext
    {
         public DbSet<ServiceReference.Account> Accounts { get; set; }
         public DbSet<ServiceReference.Beneficiary> Beneficiaries { get; set; }
         public DbSet<ServiceReference.Category> Categories { get; set; }
         public DbSet<ServiceReference.Interval> Intervals { get; set; }
         public DbSet<ServiceReference.Project> Projects { get; set; }
         public DbSet<ServiceReference.Subcategory> Subcategories { get; set; }
         public DbSet<ServiceReference.TimeUnit> TimeUnits { get; set; }
         public DbSet<ServiceReference.Transaction> Transactions { get; set; }
    }
}

所以控制器已经创建但是当我运行一个视图时,我遇到了很多错误...... 你有什么建议吗?

谢谢

0 个答案:

没有答案