Ik heb al op Google gezocht, een hoop geprutst en volgens de docs die bij het Gentle framework zitten zou alles goed moeten zijn, maar toch gaat er iets fout in de volgende situatie. Misschien dat iemand anders een intelligente oplossing weet want ik zie het zo 1-2-3 niet meer 
Het probleem is als volgt:
Ik gebruik Gentle voor O/R mapping vanaf de database access laag in mijn asp.net applicatie naar een database. Het object ziet er als volgt uit:
Zoals je ziet ben ik bezig met het debuggen van de functie ListCurrentAds, deze doet namelijk niet echt wat ik wil
Het is de bedoeling dat het resultaat van de query (welke door Gentle wordt getransformeerd in een lijst objecten) in ListCurrentAds in een Repeater control wordt afgebeeld. Nu lukt het databinden wel, ik zie keurig 2 list items staan op de webpagina en er staan 2 records die aan de query voldoen in de database, maar ik krijg op geen enkele wijze voor elkaar om de daadwerkelijke content van de object(en) in de repeater af te beelden. Als ik dit bijvoorbeeld doe in mijn usercontrol:
dan krijg ik van asp.net doodleuk een foutmelding dat de property in kwestie (hier AdvertentieTitel dus) van het object niet kan worden gevonden - weird omdat deze volgens de code van het object toch echt wel bestaat! (en ja, ook hier ben ik aan het debuggen zoals je ziet
)
Heeft er iemand enig idee hoe ik deze properties wél weergegeven krijg?
Het probleem is als volgt:
Ik gebruik Gentle voor O/R mapping vanaf de database access laag in mijn asp.net applicatie naar een database. Het object ziet er als volgt uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
| using System;
using System.Collections;
using Gentle.Framework;
using Gentle.Provider;
namespace Core.DataObjects
{
[TableName("tblAdvertentie")]
public class Advertentie
{
// vars
private int _AdvertentieID;
private int _AdverteerderID;
private DateTime _StartDatum;
private DateTime _EindDatum;
private string _AdvertentieTitel;
private string _AdvertentieTekst;
private int _CategorieID;
private int _PlaatsID;
// constructor
public Advertentie(int AdvertentieID,
int AdverteerderID,
DateTime StartDatum,
DateTime EindDatum,
string AdvertentieTitel,
string AdvertentieTekst,
int CategorieID,
int PlaatsID)
{
this._AdvertentieID = AdvertentieID;
this._AdverteerderID = AdverteerderID;
this._StartDatum = StartDatum;
this._EindDatum = EindDatum;
this._AdvertentieTitel = AdvertentieTitel;
this._AdvertentieTekst = AdvertentieTekst;
this._CategorieID = CategorieID;
this._PlaatsID = PlaatsID;
}
// get/setters for properties
[TableColumn("AdvertentieID"),PrimaryKey(AutoGenerated=true)]
int AdvertentieID
{
get { return _AdvertentieID; }
set { _AdvertentieID = value; }
}
[TableColumn("AdverteerderID")]
int AdverteerderID
{
get { return _AdverteerderID; }
set { _AdverteerderID = value; }
}
[TableColumn("StartDatum")]
DateTime StartDatum
{
get { return _StartDatum; }
set { _StartDatum = value; }
}
[TableColumn("EindDatum")]
DateTime EindDatum
{
get { return _EindDatum; }
set { _EindDatum = value; }
}
[TableColumn("AdvertentieTitel")]
string AdvertentieTitel
{
get{ return _AdvertentieTitel; }
set{ _AdvertentieTitel = value; }
}
[TableColumn("AdvertentieTekst")]
string AdvertentieTekst
{
get{ return _AdvertentieTekst; }
set{ _AdvertentieTekst = value; }
}
[TableColumn("CategorieID")]
int CategorieID
{
get{ return _CategorieID; }
set{ _CategorieID = value; }
}
[TableColumn("PlaatsID")]
int PlaatsID
{
get{ return _PlaatsID; }
set{ _PlaatsID = value; }
}
// public methods
static public IList ListCurrentAds(int PlaatsID, int CategorieID, string Datum)
{
SqlBuilder sb = new SqlBuilder(StatementType.Select,typeof(Advertentie));
sb.AddConstraint(Operator.Equals,"PlaatsID",PlaatsID);
sb.AddConstraint(Operator.Equals,"CategorieID",CategorieID);
// sb.AddConstraint(Operator.GreaterThanOrEquals,"StartDatum",Datum);
//sb.AddConstraint(Operator.LessThanOrEquals,"EindDatum",Datum);
SqlStatement sql = sb.GetStatement(StatementType.Select, typeof(Advertentie), true);
return ObjectFactory.GetCollection(typeof(Advertentie),sql.Execute());
}
}
} |
Zoals je ziet ben ik bezig met het debuggen van de functie ListCurrentAds, deze doet namelijk niet echt wat ik wil
Het is de bedoeling dat het resultaat van de query (welke door Gentle wordt getransformeerd in een lijst objecten) in ListCurrentAds in een Repeater control wordt afgebeeld. Nu lukt het databinden wel, ik zie keurig 2 list items staan op de webpagina en er staan 2 records die aan de query voldoen in de database, maar ik krijg op geen enkele wijze voor elkaar om de daadwerkelijke content van de object(en) in de repeater af te beelden. Als ik dit bijvoorbeeld doe in mijn usercontrol:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| <%@ Import Namespace="Core.DataObjects" %>
<script runat="server" language="c#">
public int City;
public int Category;
private void Page_Load()
{
offers.DataSource = Advertentie.ListCurrentAds(City,Category,"1-1-2004");
offers.DataBind();
debug.Text = Category.ToString();
}
</script>
<asp:Label id="debug" runat="server" />
<div style="text-align: left; background: #fff; width: 250px; padding-top: 5px; padding-bottom: 5px;">
<asp:Repeater id="offers" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><a href="OfferDetails.aspx?AdID=x"><%# DataBinder.Eval(Container.DataItem, "AdvertentieTitel") %></a></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</div> |
dan krijg ik van asp.net doodleuk een foutmelding dat de property in kwestie (hier AdvertentieTitel dus) van het object niet kan worden gevonden - weird omdat deze volgens de code van het object toch echt wel bestaat! (en ja, ook hier ben ik aan het debuggen zoals je ziet
Heeft er iemand enig idee hoe ik deze properties wél weergegeven krijg?
"The people who are crazy enough to think they could change the world, are the ones who do." -- Steve Jobs (1955-2011) , Aaron Swartz (1986-2013)