城堡活动记录映射视图

本文关键字:视图 映射 记录 活动 城堡 | 更新日期: 2023-09-27 18:35:19

您好,我正在使用VS2012 c#和Castle Active Record。

读完这篇文章后

如何使用活动记录映射数据库视图?

而这个

使用城堡活动记录的映射视图,主键异常

而这个

Castle ActiveRecord 错误与视图: NHibernate.PropertyNotFoundException for generated key

我仍然不知道如何解决这些问题中每个人都有的相同问题。如果不添加组合键,如何在城堡活动记录中映射视图?提到了一个简单的主键,但这是什么意思?如何设置?还是有别的办法?

视图所基于的表有一个主键列,但是当我将其映射为主键时,它会抛出错误无法执行 FindAll。当我打开它时,内部异常为空。什么都没有...

嘿德克谢谢你的回答这里是查看地图

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.ActiveRecord;
using Castle.ActiveRecord.Queries;
namespace Data_Objects.CAR.Klase
{
    [ActiveRecord("OSNOVNASREDSTVA")]
    public class OsnovnaSredstva : ActiveRecordBase<OsnovnaSredstva>
    {
        private int _ossr_sifra;
        private string _ossr_naziv;
        private string _ossr_opis;
        private int _ossr_stanje;
        private int _ossr_org;
        private int _ossr_lok;
        private DateTime _ossr_odDatuma;

        [PrimaryKey(PrimaryKeyType.Native, Column = "SIFRA")]
        public int Ossr_Sifra
        {
            get { return _ossr_sifra; }
            set { _ossr_sifra = value; }
        }

    }
}

我还有其他属性,我暂时删除了测试,以确保问题出在主键属性上(确实如此)。

不确定视图结构是什么意思,但这是sql

CREATE VIEW OSNOVNASREDSTVA
AS select "SIFRA","NAZIV","OPIS","STANJE","REVALNABAVNACIJENA","NABAVNACIJENA","AMORTIZACIJA","DATUMNABAVE","SMJENA","STOPAAMORTIZACIJE","ORGANIZACIJA","POCETAKAMORTIZACIJE","ZADNJAAMORTIZACIJA","DEVNABAVNACIJENA","DEVAMORTIZACIJA","ODDATUMA","PREDMET","KONTOZALIHE","KONTOAMORTIZACIJE","GRUPAAMORTIZACIJE","KADAR","LOKACIJA","DOBAVLJAC","PROIZVODJAC","VALUTA","DODATUMA","MJESECI","ID","EAN","IZNOSPROBNEAMORTIZACIJE","DEVIZNOSPROBNEAMORTIZACIJE","DEVIZNOSPROBNEDORAZDOBLJA","IZNOSPROBNEDORAZDOBLJA","DEVREVALNABAVNACIJENA","PRIPREMA","BROJRACUNA","CREATED_BY","MODIFIED_BY","DATE_CREATED","DATE_MODIFIED","BILANCA","PORESKAGRUPAAM","REGISTARSKI_BROJ","MODEL","OSTALO","KOPIRANJE","BROJ_NALOGA","KUF_ID","AMORT_TEKUCA","AMORT_PRIJE_TEK","ZADNJASIFRA" from IBS.os_osnovnasredstva;

城堡活动记录映射视图

简短的回答,我是个白痴。

长答案数据库中的主键列是 Varchar2 类型,我将其设置为 int cos 查看数据,它都是数字,所以我假设(做一个屁股等等)它是数字而不看。其实不然。然后我将 class 属性从 int 更改为字符串,这一切都像一个魅力。