Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Member is not a table column. #17

Closed
suigintou opened this issue May 22, 2013 · 8 comments
Closed

Member is not a table column. #17

suigintou opened this issue May 22, 2013 · 8 comments

Comments

@suigintou
Copy link

В модели кода тип Status - enum, где к каждому члену привязано идентифицирующее число.
В БД: [Status] TINYINT NOT NULL
В BLToolkit работало.

[LinqException: Member 'DatabasePicture.Status' is not a table column.]
LinqToDB.Linq.Builder.TableContext.GetField(Expression expression, Int32 level, Boolean throwException) +2226
LinqToDB.Linq.Builder.TableContext.FindTable(Expression expression, Int32 level, Boolean throwException) +95
LinqToDB.Linq.Builder.TableContext.ConvertToSql(Expression expression, Int32 level, ConvertFlags flags) +584
LinqToDB.Linq.Builder.ExpressionContext.ConvertToSql(Expression expression, Int32 level, ConvertFlags flags) +125
LinqToDB.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext context, Expression expression, Boolean unwrap) +3948
LinqToDB.Linq.Builder.ExpressionBuilder.ConvertEnumConversion(IBuildContext context, Expression left, Operator op, Expression right) +882
LinqToDB.Linq.Builder.ExpressionBuilder.ConvertCompare(IBuildContext context, ExpressionType nodeType, Expression left, Expression right) +645
LinqToDB.Linq.Builder.ExpressionBuilder.ConvertPredicate(IBuildContext context, Expression expression) +170
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext context, Expression expression, List1 conditions) +625 LinqToDB.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext context, Expression expression, Boolean unwrap) +238 LinqToDB.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext context, Expression expression, Boolean unwrap) +5125 LinqToDB.Linq.Builder.ExpressionBuilder.ConvertPredicate(IBuildContext context, Expression expression) +2027 LinqToDB.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext context, Expression expression, List1 conditions) +625
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext context, Expression expression, List1 conditions) +289 LinqToDB.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext context, Expression expression, Boolean unwrap) +238 LinqToDB.Linq.Builder.ExpressionBuilder.ConvertToSql(IBuildContext context, Expression expression, Boolean unwrap) +5125 LinqToDB.Linq.Builder.ExpressionBuilder.ConvertPredicate(IBuildContext context, Expression expression) +2027 LinqToDB.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext context, Expression expression, List1 conditions) +625
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext context, Expression expression, List1 conditions) +117 LinqToDB.Linq.Builder.ExpressionBuilder.BuildSearchCondition(IBuildContext context, Expression expression, List1 conditions) +101
LinqToDB.Linq.Builder.ExpressionBuilder.BuildWhere(IBuildContext parent, IBuildContext sequence, LambdaExpression condition, Boolean checkForSubQuery) +246
LinqToDB.Linq.Builder.WhereBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) +180
LinqToDB.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) +55
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) +201
LinqToDB.Linq.Builder.OrderByBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) +105
LinqToDB.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) +55
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) +201
LinqToDB.Linq.Builder.OrderByBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) +105
LinqToDB.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) +55
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) +201
LinqToDB.Linq.Builder.SelectBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) +175
LinqToDB.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) +55
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) +201
LinqToDB.Linq.Builder.CountBuilder.BuildMethodCall(ExpressionBuilder builder, MethodCallExpression methodCall, BuildInfo buildInfo) +121
LinqToDB.Linq.Builder.MethodCallBuilder.BuildSequence(ExpressionBuilder builder, BuildInfo buildInfo) +55
LinqToDB.Linq.Builder.ExpressionBuilder.BuildSequence(BuildInfo buildInfo) +201
LinqToDB.Linq.Builder.ExpressionBuilder.Build() +100
LinqToDB.Linq.Query1.GetQuery(IDataContextInfo dataContextInfo, Expression expr) +346 LinqToDB.Linq.ExpressionQuery1.GetQuery(Expression expression, Boolean cache) +69
LinqToDB.Linq.ExpressionQuery1.System.Linq.IQueryProvider.Execute(Expression expression) +20 System.Linq.Queryable.Count(IQueryable1 source) +233

@igor-tkachev
Copy link
Member

Can I get a sample of your data model?

@suigintou
Copy link
Author

internal class DatabasePicture
{
    public ModerationStatus Status { get; set; }
}

public enum ModerationStatus
{
    Pending = 0,
    Accepted = 1,
    Declined = 2
}

@igor-tkachev
Copy link
Member

And query if possible.

@suigintou
Copy link
Author

new DataContext()
    .GetTable<DatabasePicture>()
    .Where(_ => _.Status == ModerationStatus.Accepted)
    .Count();

СУБД: MSSQL2012

igor-tkachev added a commit that referenced this issue Jun 3, 2013
@igor-tkachev
Copy link
Member

I have added a test to reproduce the problem - 3c17331
It works fine.

@suigintou
Copy link
Author

Извиняюсь, проблема действительно не в enum'ах. Я не знаю почему, но у меня выпадает ошибка "Member is not a table column." на любом свойстве, используемом в запросе, если оно явно не помечено атрибутом Column.

@igor-tkachev
Copy link
Member

It is by design. If you decorate your class with [Table] attribute, you should decorate all your columns with [Column] attribute. As an option you can use flag IsColumnAttributeRequired=false.

@suigintou
Copy link
Author

Понятно. Просто в BLToolkit было другое поведение.

igor-tkachev added a commit that referenced this issue Sep 1, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants