Skip to content

Commit 9fa4d06

Browse files
committed
Fixes issue ThatRendle#206
1 parent 76c1df5 commit 9fa4d06

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

Simple.Data.SqlTest/QueryTest.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ public void ColumnAliasShouldChangeDynamicPropertyName()
8282
Assert.AreEqual("Bob", actual.Alias);
8383
}
8484

85+
[Test]
86+
public void MissingColumnShouldHaveColumnNotFoundMessage()
87+
{
88+
var db = DatabaseHelper.Open();
89+
var actual = db.Users.QueryById(1).Select(db.Users.Name).First();
90+
Assert.Throws<UnresolvableObjectException>(() => Console.WriteLine(actual.Bobbins), "Column not found.");
91+
}
92+
8593
[Test]
8694
public void ShouldSelectFromOneToTen()
8795
{

Simple.Data/SimpleRecord.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,18 @@ public override bool TryGetMember(GetMemberBinder binder, out object result)
6464

6565
if (_database != null)
6666
{
67-
var relatedAdapter = _database.GetAdapter() as IAdapterWithRelation;
68-
if (relatedAdapter != null && relatedAdapter.IsValidRelation(_tableName, binder.Name))
67+
try
6968
{
70-
result = GetRelatedData(binder, relatedAdapter);
71-
return true;
69+
var relatedAdapter = _database.GetAdapter() as IAdapterWithRelation;
70+
if (relatedAdapter != null && relatedAdapter.IsValidRelation(_tableName, binder.Name))
71+
{
72+
result = GetRelatedData(binder, relatedAdapter);
73+
return true;
74+
}
75+
}
76+
catch (UnresolvableObjectException)
77+
{
78+
throw new UnresolvableObjectException("Column not found.");
7279
}
7380
}
7481
return base.TryGetMember(binder, out result);

0 commit comments

Comments
 (0)