Castle.ActiveRecord.Framework.Internal.SemanticVerifierVisitor.VisitBelongsTo C# (CSharp) Méthode

VisitBelongsTo() public méthode

Visits the belongs to.
Infer column name and type Verify that the property is virtual if the class was marked lazy.
public VisitBelongsTo ( BelongsToModel model ) : void
model BelongsToModel The model.
Résultat void
		public override void VisitBelongsTo(BelongsToModel model)
		{
			if (currentModel.ActiveRecordAtt != null)
			{
				if (currentModel.ActiveRecordAtt.Lazy ||
				    (currentModel.ActiveRecordAtt.LazySpecified == false && ActiveRecordModel.isLazyByDefault))
				{
					//Assuming that a property must have at least a single accessor
					MethodInfo accessor = model.Property.GetAccessors(true)[0];

					if (!accessor.IsVirtual)
					{
						throw new ActiveRecordException(
							String.Format("Property {0} must be virtual because " +
							              "class {1} support lazy loading [ActiveRecord(Lazy=true)]",
							              model.Property.Name, model.Property.DeclaringType.Name));
					}
				}
			}

			if (model.BelongsToAtt.Column == null && model.BelongsToAtt.CompositeKeyColumns == null)
			{
				model.BelongsToAtt.Column = model.Property.Name;
			}

			// Append column prefix
			if (model.BelongsToAtt.Column != null)
			{
				model.BelongsToAtt.Column = columnPrefix + model.BelongsToAtt.Column;
			}

			if (model.BelongsToAtt.Type == null)
			{
				model.BelongsToAtt.Type = model.Property.PropertyType;
			}
		}