Я действительно новичок в MVC. Я сделал вид, что просто извлекает данные из таблицы с именем Info
, используя этот кодНедопустимое имя объекта 'dbo.Infoes' при извлечении данных из БД с использованием EF
Контроллер:
namespace FP.WebUI.Controllers
{
public class HomeController : Controller
{
private IRetrieveData repo;
public HomeController(IRetrieveData repoParam)
{
repo = repoParam;
}
public ViewResult Index()
{
Info model = repo.Info.ToList().FirstOrDefault();
return View(model);
}
}
}
И вид:
<div id="follow">
<a href="http://@Model.Facebook.Substring(Model.Facebook.IndexOf("http://")+1,Model.Facebook.Length)"><img src="img/temp.png" alt="facebook"/></a>
<a href="http://@Model.Twitter.Substring(Model.Twitter.IndexOf("http://")+1,Model.Twitter.Length)"><img src="img/temp.png" alt="twitter"/></a>
<a href="mailto://@Model.Email"><img src="img/temp.png" alt="email"/></a>
</div>
Но я всегда получаю это исключение прямо в строки:
Info model = repo.Info.ToList().FirstOrDefault();
Исключение составляет:
Ошибка сервера в приложении «/».
Неверное имя объекта 'dbo.Infoes'.
Описание: Необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения более информации об ошибке и ее месте в коде.
Сведения об исключении: System.Data.SqlClient.SqlException: Неверный объект имя 'dbo.Infoes'.
Я понятия не имею, где проблема, поэтому я поставлю связанные части проекта.
Строка подключения внутри корня Web.config
:
<connectionStrings>
<add name="EFDbContext" providerName="system.data.sqlclient" connectionString="Data Source=.;Initial Catalog=photography;Integrated Security=True"/>
</connectionStrings>
EFDbContext класса:
namespace FP.Domain.Concrete
{
public class EFDbContext : DbContext
{
public DbSet<Gallery> Gallery { get; set; }
public DbSet<SessionImages> SessionImages { get; set; }
public DbSet<Sessions> Sessions { get; set; }
public DbSet<Admins> Admins { get; set; }
public DbSet<Info> Info { get; set; }
public DbSet<Offers> Offers { get; set; }
}
}
EFDbRetrieve класс:
namespace FP.Domain.Concrete
{
public class EFDbRetrieve : IRetrieveData
{
private EFDbContext context = new EFDbContext();
public IQueryable<Admins> Admins
{
get { return context.Admins; }
}
public IQueryable<Gallery> Gallery
{
get { return context.Gallery; }
}
public IQueryable<SessionImages> SessionImages
{
get { return context.SessionImages; }
}
public IQueryable<Sessions> Sessions
{
get { return context.Sessions; }
}
public IQueryable<Offers> Offers
{
get { return context.Offers; }
}
public IQueryable<Info> Info
{
get { return context.Info; }
}
}
}
IRetrieveData я nterface:
namespace FP.Domain.Abstract
{
public interface IRetrieveData : IAdmins, IGallery, ISessionImages, ISessions, IOffers, IInfo
{
}
}
, который наследует от интерфейса IInfo:
namespace FP.Domain.Abstract
{
public interface IInfo
{
IQueryable<Info> Info { get; }
}
}
Я был бы очень признателен, если кто-то помог мне в этом, я получаю разочарование.
Это ошибка отображения (вероятно, из-за плюрализацию имен таблиц, созданных из классов сущностей), но вы не включили в свои таблицах отображения :) –
@ Trustme-I'maDoctor мог бы вы предоставить мне с учебником или видео, которое объясняет, что отображение вещь? Большое спасибо –
[Вот учебник с видео] (http://msdn.microsoft.com/en-us/data/jj200620), включенные отображения. Если вы хотите авто-карту, используйте решение из ответа. –